使用JavaScript将小写金额转化为大写金额的两种常见方法

代码 代码 1373 人阅读 | 0 人回复

<
  导读:正在一些付出大概银止确认疑息中经常需求将小写金额转换为年夜写金额,那里做一下归结,
 

目次
 
结果图:
办法一:利用正则表达式
办法两:通例JavaScript完成

结果图:

115048uxwwhk23he8p0gr0.jpg

前里小写,后背年夜写,那里利用vue测试,别的框架同理.小写是传值的字段money,年夜写间接挪用函数dealBigMoney(money) 便可.
办法一:利用正则表达式

  1. dealBigMoney(n) {      
  2.    if (!/^(0|[1-9]\d*)(\.\d+)?$/.test(n))
  3.    return "数据不法";
  4.    let unit = "千百拾亿千百拾万千百拾元角分", str = "";
  5.    n += "00";
  6.    let p = n.indexOf(&#39;.&#39;);
  7.    if (p >= 0){
  8.         n = n.substring(0, p) + n.substr(p+1, 2);
  9.    unit = unit.substr(unit.length - n.length);
  10. }
  11.    
  12.    for (var i=0; i < n.length; i++)
  13.    str += &#39;整壹贰叁肆伍陆柒捌玖&#39;.charAt(n.charAt(i)) + unit.charAt(i);
  14.    return  str.replace(/整(千|百|拾|角)/g, "整").replace(/(整)+/g, "整").replace(/整(万|亿|元)/g, "$1").replace(/(亿)万|壹(拾)/g, "$1$2").replace(/^元整?|整分/g, "").replace(/元$/g, "元整");
  15.    }
复造代码
模板挪用
  {{money}}|{{dealBigMoney(money) }}
办法两:通例JavaScript完成

 
  1. /** 数字金额年夜写转换(能够处置整数,小数,背数) */  
  2. dealBigMoney(n)   
  3. {  
  4.     var fraction = [&#39;角&#39;, &#39;分&#39;];  
  5.     var digit = [&#39;整&#39;, &#39;壹&#39;, &#39;贰&#39;, &#39;叁&#39;, &#39;肆&#39;, &#39;伍&#39;, &#39;陆&#39;, &#39;柒&#39;, &#39;捌&#39;, &#39;玖&#39;];  
  6.     var unit = [ [&#39;元&#39;, &#39;万&#39;, &#39;亿&#39;], [&#39;&#39;, &#39;拾&#39;, &#39;佰&#39;, &#39;仟&#39;]  ];  
  7.     var head = n < 0? &#39;短&#39;: &#39;&#39;;  
  8.     n = Math.abs(n);  
  9.     var s = &#39;&#39;;  
  10.     for (var i = 0; i < fraction.length; i++)   
  11.     {  
  12.         s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/整./, &#39;&#39;);  
  13.     }  
  14.     s = s || &#39;整&#39;;  
  15.     n = Math.floor(n);  
  16.     for (var i = 0; i < unit[0].length && n > 0; i++)   
  17.     {  
  18.         var p = &#39;&#39;;  
  19.         for (var j = 0; j < unit[1].length && n > 0; j++)   
  20.         {  
  21.             p = digit[n % 10] + unit[1][j] + p;  
  22.             n = Math.floor(n / 10);  
  23.         }  
  24.         s = p.replace(/(整.)*整$/, &#39;&#39;).replace(/^$/, &#39;整&#39;)  + unit[0][i] + s;  
  25.     }  
  26.     return head + s.replace(/(整.)*整元/, &#39;元&#39;).replace(/(整.)+/g, &#39;整&#39;).replace(/^整$/, &#39;整元整&#39;);  
  27. }
复造代码
这类也是一样的,这类东西类依旧比力好用的,假如有更好的办法欢送留行!

免责声明:假如进犯了您的权益,请联络站少,我们会实时删除侵权内乱容,感谢协作!
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,按照目前互联网开放的原则,我们将在不通知作者的情况下,转载文章;如果原文明确注明“禁止转载”,我们一定不会转载。如果我们转载的文章不符合作者的版权声明或者作者不想让我们转载您的文章的话,请您发送邮箱:Cdnjson@163.com提供相关证明,我们将积极配合您!
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并自负版权等法律责任。
回复 关闭延时

使用道具 举报

 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则