var nums = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
function numToChina(num) {
var unit = ['十', '百', '千','万'];
var numToString = num.toString();
var numLen = numToString.length;
var numArr = numToString.split('');
var result = ''
if (numLen == 1) {
result = nums[num]
} else if (numLen == 2 && num < 20) {
if(numArr[1] == 0) {
result = '十'
}
result = '十' + nums[Number(numArr[1])] //个位数
} else if (numLen == 2 && num >= 20 && num < 100) {
if (numArr[1] == 0) {
result = nums[numArr[0]] + '十'
} else {
result = nums[numArr[0]] + '十' + nums[numArr[1]]
}
} else if (numLen == 3) {
if (numArr[1] == 0 && numArr[2] == 0) {
result = nums[numArr[0]] + '百'
} else if(numArr[1] != 0 && numArr[2] == 0) {
result = nums[numArr[0]] + '百' + nums[numArr[1]] + '十'
} else {
result = clearZero(numArr[0] , '百') + clearZero(numArr[1] , '十') + nums[numArr[2]]
}
} else if (numLen == 4) {
if (numArr[1] == 0 && numArr[2] == 0 && numArr[3] == 0) {
result = nums[numArr[0]] + '千'
}
else if(numArr[1] != 0 && numArr[2] == 0 && numArr[3] == 0) {
result = nums[numArr[0]] + '千' + nums[numArr[1]] + '百'
}
else if(numArr[1] != 0 && numArr[2] != 0 && numArr[3] == 0) {
result = nums[numArr[0]] + '千' + nums[numArr[1]] + '百' + nums[numArr[2]] + '十'
}
else {
result = clearZero([numArr[0]] , '千') + clearZero([numArr[1]] , '百') + clearZero([numArr[2]] , '十') + clearZero([numArr[3]] , '')
}
}
return deleteOtherZero(result)
}
//去除不必要的零,比如十位数为0,则整个十位数都为零,把单位也省了
function clearZero(val, str) {
if(val == 0) {
if(str === '') {
return ''
}else {
return '零'
}
}else {
return nums[val] + str
}
}
//去除多余的零
function deleteOtherZero(val) {
var flag = /零零/g.test(val);
if(flag) {
return val.replace(/零零/g, '零')
}else {
return val
}
}
console.log(numToChina(1020))