如何删除下面特定代码中的特殊字符?我一直在尝试使用替换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;
}
答案 0 :(得分:0)
你有n= parseFloat(n)
...将昏迷视为浮点,使用n =parseFloat(n.replace(',',''));
但这是错误删除逗号
答案 1 :(得分:0)
ParseFloat不支持千位分隔符。如果要支持包含此类分隔符的用户输入,则必须手动将其删除。
function toWords(n)
{
var n=parseFloat(n.replace(',','')).toFixed(2);
...