numToChinese(num) {
let numArr = ["零","一","二","三","四","五","六","七","八","九"];
let numLimit = ["亿","万",""];//设置数字上限
let numUnit = ["千","百","十",""];
//num四位数是一个阶段对应 numLimit 每个阶段对应一个 numUnit,每个数字对应numArr。
num = num.toString();
num = num.split('');
while (num.length < numLimit.length*4){
num.unshift('');
}
// console.log(num)
let numLength = num.length;
let str = "";
let limit = Math.ceil(numLength/4);
// console.log(limit)
for(let i = 1;i <= limit;i++){
let start = (i -1) * 4;
let end = i * 4;
let limitNum = num.slice(start,end);
// console.log(limitNum)
for(let j = 0;j <limitNum.length ;j++){
if(limitNum[j]!==''){
let char = numArr[limitNum[j]];
let unit = numUnit[j];
if(limitNum[j] == 0){
unit = '';
}
str += char+unit;
}
}
let hasValue = limitNum.filter(val=>{
return val!=='';
});
str = str.replace(/(零{2,})/,'零');//中间超过两个零替换为一个零
if(str!=='零'){
str = str.replace(/(零*)$/,'');//结尾去掉零
}
if(hasValue.length > 0){
str+=numLimit[i-1];
}
}
str = str.replace(/^一十/,'十');
return str;
}