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
}
运行结果:
let number = ‘123456009011’
console.log(numToText(number)) // 壹仟贰佰叁拾肆亿伍仟陆佰萬玖仟零壹拾壹元整
let number = ‘123456789’
console.log(numToText(number)) // 壹亿贰仟叁佰肆拾伍萬陆仟柒佰捌拾玖元整