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; }