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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/p3118601/article/details/81393558
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;
    };

猜你喜欢

转载自blog.csdn.net/p3118601/article/details/81393558