金额转换, 数字转文字
没事写一个, 完整代码如下:
clear()
{
let nuit = ['十', '百', '千', '万', '十万', '百万', '千万']
const ns = ["零","一","二","三", "四", "五", "六", "七", "八","九"]
let addNuitList = ['亿', '兆'] // 兆后面是京
addNuitList.forEach(e => {
eval(`
nuit.push('${e}')
nuit.forEach(e => {
e != '${e}' && nuit.push(e + '${e}')
})
`)
})
const addNuit = split => {
let newarr = []
let _nuit = nuit.slice(0, split.length - 1)
_nuit.reverse()
split.forEach((item, index, arr) => {
if(item == ns[0]){
_nuit[index] = ''
}
if(item == '一'){
if(_nuit[index] != '十' && _nuit[index][0] == '十')
item = ''
}
Boolean(!_nuit[index])
? newarr.push(item)
: newarr.push(item, _nuit[index])
})
return newarr
}
const numToStr = num => (num += '', num.split(''))
const setNuitF = key => v => {
const sp = v.split(key)
if(sp.length >= 2){
sp[sp.length - 1] = key + sp[sp.length - 1]
}
return sp.join('')
}
const setNuit = v => {
return setNuitF('万')(
setNuitF('亿')(v)
)
}
const nonil = v => {
const len = v.length
return v[len - 1] == ns[0]
? nonil(v.substring(0, len - 1))
: v
}
const priceTostr = num => num == 0
? ns[0]
: nonil(
setNuit(
addNuit(
numToStr(num).map(e => ns[e])
).join('')
)
)
console.log(priceTostr(0))
}
上面代码用到了eval , 小程序, native等是不支持得, 可以取出来哈。
--END--