如何删除此Javascript代码中的特殊字符

时间:2015-10-20 12:36:44

标签: javascript

如何删除下面特定代码中的特殊字符?我一直在尝试使用替换var = t,但它没有正常工作。当一个人输入他们希望转换为单词的数字的逗号时,它会删除句子。

谢谢!

var o=new Array("diez", "once", "doce", "trece", "catorce", "quince", "dieciséis", "diecisiete", "dieciocho", "diecinueve", "veinte", "veintiuno", "veintidós", "veintitrés", "veinticuatro", "veinticinco", "veintiséis", "veintisiete", "veintiocho", "veintinueve");
var u=new Array("cero", "uno", "dos", "tres", "cuatro", "cinco", "seis", "siete", "ocho", "nueve");
var d=new Array("", "", "", "treinta", "cuarenta", "cincuenta", "sesenta", "setenta", "ochenta", "noventa");
var c=new Array("", "ciento", "doscientos", "trescientos", "cuatrocientos", "quinientos", "seiscientos", "setecientos", "ochocientos", "novecientos");

function toWords(n)
{ 
  var n=parseFloat(n).toFixed(2);
  var p=n.toString().substring(n.toString().indexOf(".")+1);
  var m=n.toString().substring(0,n.toString().indexOf("."));
  var m=parseFloat(m).toString().split("").reverse();
  var t=" ";


  for (var i=0; i<m.length; i+=3)
  {
    var x=t;

    var b=m[i+1]!=undefined?parseFloat(m[i+1].toString()+m[i].toString()):parseFloat(m[i].toString());

    t=m[i+2]!=undefined?(c[m[i+2]]+" "):"";
    t+=b<10?u[b]:(b<30?o[b-10]:(d[m[i+1]]+(m[i]=='0'?"":(" y "+u[m[i]]))));
    t=t=="ciento cero"?"cien":t;
    if (2<i&&i<6)
      t=t=="uno"?"mil ":(t.replace("uno","un")+" mil ");
    if (5<i&&i<9)
      t=t=="uno"?"un millón ":(t.replace("uno","un")+" millones ");
    t+=x;
    //t=i<3?t:(i<6?((t=="uno"?"mil ":(t+" mil "))+x):((t=="uno"?"un millón ":(t+" millones "))+x));
  }

  return t;
}

2 个答案:

答案 0 :(得分:0)

你有n= parseFloat(n) ...将昏迷视为浮点,使用n =parseFloat(n.replace(',',''));但这是错误删除逗号

答案 1 :(得分:0)

ParseFloat不支持千位​​分隔符。如果要支持包含此类分隔符的用户输入,则必须手动将其删除。

function toWords(n)
{ 
  var n=parseFloat(n.replace(',','')).toFixed(2);
  ...