簡體   English   中英

如何刪除此 Javascript 代碼中的特殊字符

[英]How to Remove Special Characters in this Javascript Code

如何刪除下面特定代碼中的特殊字符? 我一直在嘗試使用 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);
  ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM