如下方法只 支持 1 到 99:
function numToChineseUppercase(num ) {
num = Number(num);
var upperCaseNumber = [ '零', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '百', '千', '万', '亿' ];
var length = String(num).length;
if (length == 1) {
return upperCaseNumber[num];
} else if (length == 2) {
if (num == 10) {
return upperCaseNumber[num];
} else if (num > 10 && num < 20) {
return '十' + upperCaseNumber[String(num).charAt(1)];
} else {
return ( upperCaseNumber[String(num).charAt(0)] + '十' + upperCaseNumber[String(num).charAt(1)].replace('零', '') );
}
}
}
改进了之后:
function changChineseNumber(num) {
num = Number(num)
var upperCaseNumber = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '百', '千', '万', '亿'];
const len = String(num).length
if (len === 1) {
return upperCaseNumber[num]
}
// 10 | 19 20
if (len === 2) {
if (num === 10) return "十";
if (String(num).charAt(1) === "0") {
return upperCaseNumber[Number(String(num).charAt(0))] + "十";
} else {
return upperCaseNumber[Number(String(num).charAt(0))] + "十" + upperCaseNumber[Number(String(num).charAt(1))]
}
}
}
推介一个数字中文转换库:https://github.com/cnwhy/nzh
$ npm install nzh --save
$ bower install nzh --save
。。。。99 以后的数字转换,可在上述基础上再兼容一下咯。