function banker(num) {
var len = num.length,
result = '';
for (var i = 0; i < len; i++) {
if ((!+num[i] && +num[len - 4]) || (!+num[i] && !+num[len - 4] && !+num[i + 1])) {
if ((len - i) % 4 == 1 && (len - i) > 4) {
result += addUnit(len - i);
}
continue;
} else if (!+num[i] && !+num[len - 4] && +num[i + 1]) {
if ((len - i) % 4 == 1 && (len - i) > 4) {
result += addUnit(len - i);
}
result += '零';
continue;
}
result += transfer(num[i]) + addUnit(len - i);
}
return result + '元';
}
当千分位是零时,读零,否则不读零。
function addUnit(len) {
var remiander = len % 4;
if (remiander == 0) {
return '千';
} else if (remiander == 1) {
if (len == 5) return '万';
else if (len == 9) return '亿';
else return '';
} else if (remiander == 2) {
return '十';
} else if (remiander == 3) {
return '百';
}
}
function transfer(num) {
num = +num;
switch (num) {
case 1:
return '一';
case 2:
return '二';
case 3:
return '三';
case 4:
return '四';
case 5:
return '五';
case 6:
return '六';
case 7:
return '七';
case 8:
return '八';
case 9:
return '九';
case 0:
return '';
}
}
var chieseStr = banker('201010400');
console.log(chieseStr);
运行测试结果: 二亿零一百零一万零四百元;