JS将金额转为大写

    function cashToChinese(cash) {
        var digits=['零','壹','贰','叁','肆','伍','陆','柒','捌','玖'];
        var largeUnits=['元','万','亿'];
        var units=['','拾','佰','仟'];
        var fractions=['角','分'];
        let cStr='';
        cash=cash.toString();
        if(cash===''||cash===undefined||cash===null){
            return cStr;
        }
        let preCash=cash.split('.')[0]||'';
        let lastCash=cash.split('.')[1]||'00';
        if(preCash.length>12||lastCash.length>2){
            return cStr;
        }
        //遍历小数位
        for(let i=0;i<fractions.length;i++){
            cStr+=(digits[lastCash.charAt(i)]+fractions[i]).replace(/零./,'');
        }
        cStr=cStr||'整';
        //遍历整数位,用str来记录每4位的值
        for(let i=preCash.length-1,n=0,str='';i>=0;i--){
            let largeUnit='';
            str=(digits[preCash[i]]+units[n%4])+str;
            //用n计数每隔4位,或者遍历到头的时候加单位('元','万','亿')
            if((n+1)%4===0||i===0){
                largeUnit=largeUnits[Math.floor(n/4)];
                //考虑替换末位全是0时替换位空 或者中间连续0时替换为零
                str=str.replace(/(零.)*零$/g,'').replace(/(零.)+/g,'零');
                str+=largeUnit;
                cStr=str+cStr;
                str='';
            }
            n++;
        }
        //考虑处理('元','万','亿')单位前为10的情况,和整数位为0的情况
        return cStr.replace(/壹拾(.){0,1}([元|万|亿])/g,'拾$1$2').replace(/^元/,'');
    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值