如下方法只 支持 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('零', '')? ? ? ? );
? ? ? }
? ? }
? }
改進(jìn)了之后:
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))]
? ? ? ? }
? ? ? }
? ? }
推介一個數(shù)字中文轉(zhuǎn)換庫:https://github.com/cnwhy/nzh
$ npm install nzh --save
$ bower install nzh --save
。。。。99 以后的數(shù)字轉(zhuǎn)換,可在上述基礎(chǔ)上再兼容一下咯。