Don’t talk too much, don’t chatter, go directly to the code
function NoToChinese(num: string) {
if (!/^\d*(\.\d*)?$/.test(num)) {
console.log('Number is wrong!')
return 'Number is wrong!'
}
var AA = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九']
var BB = ['', '十', '百', '千', '万', '亿', '点', '']
var a = ('' + num).replace(/(^0*)/g, '').split('.'),
k = 0,
re = ''
for (var i = a[0].length - 1; i >= 0; i--) {
switch (k) {
case 0:
re = BB[7] + re
break
case 4:
if (!new RegExp('0{4}\\d{' + (a[0].length - i - 1) + '}$').test(a[0])) re = BB[4] + re
break
case 8:
re = BB[5] + re
BB[7] = BB[5]
k = 0
break
}
if (k % 4 == 2 && a[0].charAt(i + 2) != '0' && a[0].charAt(i + 1) == '0') re = AA[0] + re
if (a[0].charAt(i) != '0') re = AA[a[0].charAt(i)] + BB[k % 4] + re
k++
}
if (a.length > 1) {
//加上小数部分(如果有小数部分)
re += BB[6]
for (var n = 0; n < a[1].length; n++) re += AA[a[1].charAt(n)]
}
let ar = re.split('')
if (ar[0] + ar[1] == '一十') {
ar.splice(0, 1)
re = ar.join('')
}
return re
}