JS阿拉伯数字转换成大写

  1. <script language="JavaScript">  
  2.   
  3. function daxie()   
  4. {   
  5.   this.values = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"];   
  6.   this.digits = ["", "拾", "佰", "仟"];   
  7. }   
  8.   
  9. function daxie.prototype.getdx(num)   
  10. {   
  11.   if(isNaN(num)) return "";   
  12.   var number = Math.round(num*100)/100;   
  13.   numbernumber = number.toString(10).split('.');   
  14.   var integer = number[0];   
  15.   var len = integer.length;   
  16.   if (len > 12)   
  17.     return "数值超出范围!支持的最大数值为 999999999999.99";   
  18.   var returnValue = this.bns(integer.slice(-4));   
  19.   if (len > 4)   
  20.     returnValue = this.bns(integer.slice(-8,-4)) + (integer.slice(-8,-4)!="0000"?"万":"") + returnValue;   
  21.   if (len > 8)   
  22.     returnValue = this.bns(integer.slice(-12,-8)) + "亿" + returnValue;   
  23.   if(returnValue!="")   
  24.     returnValue += "圆";   
  25.   if(number.length==2)   
  26.   {   
  27.     var cok = number[1].split('');   
  28.     if(returnValue!="" || cok[0]!="0")   
  29.       returnValue += this.values[parseInt(cok[0])] + (cok[0]!="0"?"角":"");   
  30.     if(cok.length>=2)   
  31.       returnValue += this.values[parseInt(cok[1])] + "分";   
  32.   }   
  33.   if(returnValue!="" && !/分$/.test(returnValue))   
  34.     returnValue += "整";   
  35.   return returnValue;   
  36. }   
  37.   
  38. function daxie.prototype.bns(str)   
  39. {   
  40.   var num = str.split('');   
  41.   var dsl = num.length-1;   
  42.   var returnValue = "";   
  43.   for (var i=0; i<=dsl; i++)   
  44.     returnValue += this.values[parseInt(num[i])] + (num[i]!='0'?this.digits[dsl-i]:"");   
  45.   returnValuereturnValue = returnValue.replace(/零+$/, "").replace(/零{2,}/, "零");   
  46.   return returnValue;   
  47. }   
  48.   
  49. //   
  50. var stmp = "";   
  51. var dfs = new daxie();   
  52. function nst(t)   
  53. {   
  54.   if(t.value==stmp) return;   
  55.   var ms = t.value.replace(/[^/d/.]/g,"").replace(/(/./d{2}).+$/,"$1");   
  56.   var txt = ms.split(".");   
  57.   while(//d{4}(,|$)/.test(txt[0]))   
  58.     txt[0] = txt[0].replace(/(/d)(/d{3}(,|$))/,"$1,$2");   
  59.   t.value = stmp = txt[0]+(txt.length>1?"."+txt[1]:"");   
  60.   bbb.innerHTML ="<font color=red>"+dfs.getdx(parseFloat(ms))+"</font>";   
  61. }   
  62.   
  63. </script>  
  64. 小写金额:<input type="text" name="aaa" onkeyup="nst(this)"><br>  
  65. 大写金额: <SPAN id="bbb"> </SPAN>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值