Amaze UI Logo

码动指尖



js将小写金额转化为大写金额

今天做项目遇到了一个问题,那就是金额的显示,正如大家所知道的,在一些收据都是需要大写金额的显示的,那么我们在表格制作的时候,也可能需要显示出来。后台处理太过消耗资源,那么我们便直接js操作吧,废话不多讲,上代码:


changeMoneyToCh: function (n) {
let fraction = ['角', '分'];
   let digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
   let unit = [['元', '万', '亿'], ['', '拾', '佰', '仟']];
   let head = n < 0 ? '欠' : '';
   n = Math.abs(n);

   let s = '';

   for (let i = 0; i < fraction.length; i++) {
s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
   }
s = s || '整';
   n = Math.floor(n);

   for (let i = 0; i < unit[0].length && n > 0; i++) {
let p = '';
       for (let j = 0; j < unit[1].length && n > 0; j++) {
p = digit[n % 10] + unit[1][j] + p;
           n = Math.floor(n / 10);
       }
s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s;
   }
return head + s.replace(/(零.)*零元/, '元').replace(/(零.)+/g, '零').replace(/^整$/, '零元整');
}


 js

作者  :  奕弈

喵喵喵,你在心上



评论


About ME

about me

奕弈

为了最初的心,努力奋斗,从不懈怠的学习。

我不想成为一个庸俗的人。十年百年后,当我们死去,质疑我们的人同样死去,后人看到的是裹足不前、原地打转的你,还是一直奔跑、走到远方的我?

Contact ME