let numChar = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
let numUnit = ['', '十', '百', '千'];
let numSection = ['', '万', '亿', '万亿', '亿亿'];
function formatSection(num) {
let arr = (num + '').split('').reverse();
let str = '';
for (let i = 0; i < arr.length; i++) {
let char = arr[i] === 0 ? numChar[0] : numChar[arr[i]] + numUnit[i];
str = char + str;
}
let s = str.replace(/零+/g, '零').replace(/零+$/, '');
return s;
}
function formatNum(num, str) {
let len = Math.ceil(str.length / num);
let arr = [];
let reverseStr = str.split('').reverse().join('');
for (let i = 0; i < len; i++) {
let result = reverseStr
.slice(i * num, i * num + 4)
.split('')
.reverse()
.join('');
arr.unshift(result);
}
console.log('++num', arr)
return arr;
}
function numberTranToCN(num) {
let arr = formatNum(4, num + '');
let list = [];
for (let i = 0; i < arr.length; i++) {
let str = formatSection(arr[i]);
list.push(str);
}
let reverseList = list.reverse();
for (let j = 0; j < reverseList.length; j++) {
reverseList[j] += numSection[j];
}
return reverseList.reverse().join('');
}
console.log(numberTranToCN(12345));
console.log(numberTranToCN(1000003));