function numToText(number) {
let AA = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖')
let BB = new Array('', '拾', '佰', '仟', '萬', '亿')
let reverseStr = number.split('').reverse().join('')
let result = ''
let unit = 0
reverseStr.replace(/\d{1,4}/g, function ($1) {
if (unit !== 0) {
if (unit%2 !== 0) {
$1 = BB[4] + $1
} else {
$1 = BB[5] + $1
}
}
$1 = $1.replace(/\d/g, function (x1, idx) {
if (x1 !== '0') {
let idx1 = (unit > 0) ? (idx-1) : idx
return (BB[idx1] + AA[x1])
} else {
return AA[x1]
}
})
result += $1
unit += 1
})
result = result.replace(/[零]{2,}/g, function (x1) {
return '零'
}).split('').reverse().join('')
result = result.replace(/(零仟)|(零拾)/g, function (x1) {
return ''
}).replace(/(零亿)|(零亿零萬)/g, function (x1) {
return '亿'
}).replace(/(零萬)/g, function (x1) {
return '萬'
}).replace(/零$/, function (x1) {
return ''
})
result += '元整'
return result
}
operation result:
Number The = the let '123 456 009 011'
console.log (numToText (Number The)) // Erbai Sanshi wantonly one hundred million one thousand fifty six million Bai Jiuqian One zero one hundred yuan a whole
Number The = the let '123456789'
console.log (numToText (Number The)) // one billion Erqian Triple Bai Si Shi Wu Wan Lu thousand yuan whole Jiu Bashi Qibai