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

How to Remove Special Characters in this Javascript Code

本文关键字:删除 特殊字符 代码 Javascript      更新时间:2023-09-26

如何删除下面特定代码中的特殊字符?我一直试图使用替换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;
}

你有n= parseFloat(n)…将逗号视为浮点数,使用n =parseFloat(n.replace(',',''));但这是不正确的删除逗号

ParseFloat不支持千个分隔符。如果你想支持用户输入包含这样的分隔符,你必须手动删除它们。

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