js汉字转换为阿拉伯数字支持十到十九

js汉字转换为阿拉伯数字  直接贴函数

function cnnumtonum(chnStr){
       var chnNumChar = {
               零:0,一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9
           };
     var chnNameValue = {
             十:{value:10, secUnit:false},
             百:{value:100, secUnit:false},
             千:{value:1000, secUnit:false},
             万:{value:10000, secUnit:true},
             亿:{value:100000000, secUnit:true}
     };

var expNumChar= {
十:10,十一:11,十二:12,十三:13,十四:14,十五:15,十六:16,十七:17,十八:18,十九:19
};
if(expNumChar[chnStr]) {
return expNumChar[chnStr];
}

var rtn = 0;
       var section = 0;
       var number = 0;
       var secUnit = false;
       var str = chnStr.split('');
       for(var i = 0; i < str.length; i++){
           var num = chnNumChar[str[i]];
           if(typeof num !== 'undefined'){
               number = num;
               if(i === str.length - 1){
                   section += number;
               }
           }else{

var cunit = chnNameValue[str[i]];

if(typeof cunit == 'undefined') {
return false;
}

var unit = chnNameValue[str[i]].value;
               secUnit = chnNameValue[str[i]].secUnit;
               if(secUnit){
                   section = (section + number) * unit;
                   rtn += section;
                   section = 0;
               }else{
                   section += (number * unit);
               }
               number = 0;
           }
       }
       return rtn + section;
}

var chnStr='一百零九';
var aa=cnnumtonum(chnStr);
console.log(aa);

 阿拉伯数字转汉字

function numtocnnum(section) {
    var chnNumChar = ["", "", "", "", "", "", "", "", "", ""];
    var chnUnitSection = ["", "", "亿", "万亿", "亿亿"];
    var chnUnitChar = ["", "", "", ""];
    var strIns = '', chnStr = '';
    var unitPos = 0;
    var zero = true;
    while (section > 0) {
        var v = section % 10;
        if (v === 0) {
            if (!zero) {
                zero = true;
                chnStr = chnNumChar[v] + chnStr;
            }
        } else {
            zero = false;
            strIns = chnNumChar[v];
            strIns += chnUnitChar[unitPos];
            chnStr = strIns + chnStr;
        }
        unitPos++;
        section = Math.floor(section / 10);
    }
    return chnStr;
}
var chnStr='4001';
var aa=numtocnnum(chnStr);
console.log(aa);
原文地址:https://www.cnblogs.com/baker95935/p/11339740.html