阿拉伯数字转化为中文大写

var alabo = function (num) {
        if (isNaN(Number(num))) {
            return;
        };
        let tmpnewchar = '';  // 最后结果
        let numStr =  Number(num).toString().split(".")[0]; // 数字转化字符串
        if (/^-/.test(numStr)) {
            tmpnewchar = '负';
            numStr = numStr.replace(/^-/g,'');
        };
        let bigNum = ['亿', '万', '千', '百', '十']; // 定义单位数组
        let bigNumSlice = []; // 定义被截取后的单位数组
        let sliceStar = numStr.length - 1; // 定义被截取的位置
        let numAry = []; // 定义数字字符串分隔成数组

        
        let change = function (num) {
            let no = '';
            switch (num) {
                case "0":
                    no = "零"; break;
                case "1":
                    no = "一"; break;
                case "2":
                    no = "二"; break;
                case "3":
                    no = "三"; break;
                case "4":
                    no = "四"; break;
                case "5":
                    no = "五"; break;
                case "6":
                    no = "六"; break;
                case "7":
                    no = "七"; break;
                case "8":
                    no = "八"; break;
                case "9":
                    no = "九"; break;
            };
            return no;
        };
        if (sliceStar > 0) {
            numAry = numStr.replace(/0+$/g,'').split("");
            bigNumSlice = bigNum.slice(-sliceStar);
            numAry.map(function (value, index) {
                if (bigNumSlice[index] && change(value) != '零') {
                    tmpnewchar = tmpnewchar + change(value) + bigNumSlice[index]
                } else {
                    tmpnewchar = tmpnewchar + change(value)
                };
            });
            if (/零$/.test(tmpnewchar)) {
                tmpnewchar = tmpnewchar.replace(/零$/g, '');
            };
            if (/零+/.test(tmpnewchar)) {
                tmpnewchar = tmpnewchar.replace(/零+/g, '零');
            };
            if (/^一十/.test(tmpnewchar)) {
                tmpnewchar = tmpnewchar.replace(/^一十/g,'十');
            };
        } else {
            tmpnewchar = change(numStr)
        };
        return tmpnewchar;
    };

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值