javascript 阿拉伯数字转中文;单独处理一十情况
export const numberToChinese = (num) => {
if (isNaN(parseInt(num))) {
return num;
}
const chnNumChar = ['零','一','二','三','四','五','六','七','八','九'];
const chnUnitChar = ['','十','百','千','万','十','百','千','亿','十','百','千','兆','十','百','千'];
const mustUnits = ['万','亿','兆'];
const zero = '零';
let chnStr = '';
let str = parseInt(num).toString();
while (str.length > 0) {
var tmpNum = chnNumChar[parseInt(str.substr(0,1))];
var tmpUnit = chnUnitChar[str.length - 1];
chnStr += (chnStr.substr(-1) == zero && tmpNum == zero) ? '' : tmpNum;
chnStr += (tmpNum == zero) ? '' : tmpUnit;
if (tmpNum == zero && mustUnits.indexOf(tmpUnit) !== -1) {
if (chnStr.substr(-1) == zero) {
chnStr = chnStr.substr(0, chnStr.length - 1);
}
chnStr += tmpUnit;
}
str = str.substr(1);
}
if (chnStr.length > 1) {
chnStr = (chnStr.substr(-1) == zero) ? chnStr = chnStr.substr(0, chnStr.length - 1) : chnStr;
chnStr = (chnStr.substr(0, 1) == zero) ? chnStr = chnStr.substr(1) : chnStr;
if (chnStr.substr(0, 2) == '一十') {
chnStr = chnStr.substr(1);
}
}
return chnStr;
};