完成将 toChineseNum, 可以将数字转换成中文大写的表示,处理到万级别,例如 toChineseNum(12345),返回 一万二千三百四十五
const toChineseNum = (num) => {
// 设置参数模板
let a = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
let b = ['', '十', '百', '千', '万']
let arr = num.toString().split('').reverse(); // 将给定参数转为数组并将顺序取反
let strArr = arr.map((item, index) => {
if (index === 4 && parseInt(item) === 0) { // 如果index是4,并且该索引值是0则直接返回万
return '万';
}
index = index > 4 ? index - 4 : index; // 如果索引值大于4则将其减4再从b模板取值
return parseInt(item) === 0 ? '零' : a[item] + b[index];
});
return strArr.reverse().join('').replace(/(零(?=零))|(零$)|(零(?=万))/g, ''); // 最后在使用正则将表达式中多余的零去掉即可
}
网友评论