最近业务需要数字转为中文的数字,本来想直接插件解决的,看了下又没有啥好用的插件。就只有自己写了。这里做一篇技术笔记
由于业务是ejs+jQuery,为了满足业务需求,有些地方写的复杂了,下次使用再优化。
var $=require('jquery')
$(function(){
let value= numToCN(parseInt($('#countCN').text())+1)
$('#countCN').text('第'+ value+'集')
})
//数字转换为中文数字
function numToCN(val) {
let num=val+''
let nums=num.split('').reverse()
let CNnums=''
nums.forEach((item,index) => {
let CNnum=''
//多个零时取一个零
if(item=='0' && nums[index+1]=='0'){
}
else{
//十位为一时不显示一
if(item=='1' && index===1){}
else{
CNnum=handleCNnum(item)
}
}
if(item!='0'){
if(index===1){
CNnum='十'+CNnum
}
else if(index===2){
CNnum='百'+CNnum
}
else if(index===3){
CNnum='千'+CNnum
}
else if(index===4){
CNnum='万'+CNnum
}
}
CNnums+=CNnum
});
let value=CNnums.split('')
// 个位为零时不显示
if(value[0]=='零'){
value.shift()
}
return value.reverse().join('')
}
function handleCNnum(val) {
let CNnum=''
switch (val) {
case '1':
CNnum='一'
break;
case '2':
CNnum='二'
break;
case '3':
CNnum='三'
break;
case '4':
CNnum='四'
break;
case '5':
CNnum='五'
break;
case '6':
CNnum='六'
break;
case '7':
CNnum='七'
break;
case '8':
CNnum='八'
break;
case '9':
CNnum='九'
break;
case '0':
CNnum='零'
break;
default:
break;
}
return CNnum
}