You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

69 lines
1.6 KiB
Plaintext

9 months ago
var chnNumChar = {
零: 0,
一: 1,
二: 2,
三: 3,
四: 4,
五: 5,
六: 6,
七: 7,
八: 8,
九: 9
};
var chnNameValue = {
十: { value: 10, secUnit: false },
百: { value: 100, secUnit: false },
千: { value: 1000, secUnit: false },
万: { value: 10000, secUnit: true },
亿: { value: 100000000, secUnit: true }
}
var speChar = {
十: 10,
十一: 11,
十二: 12,
十三: 13,
十四: 14,
十五: 15,
十六: 16,
十七: 17,
十八: 18,
十九: 19
};
function ChineseToNumber(chnStr) {
try {
var speNum = speChar[chnStr];
if (speNum != undefined) {
return speNum;
}
var rtn = 0;
var section = 0;
var number = 0;
var secUnit = false;
var str = chnStr.split('');
for (var i = 0; i < str.length; i++) {
var num = chnNumChar[str[i]];
if (typeof num !== 'undefined') {
number = num;
if (i === str.length - 1) {
section += number;
}
} else {
var unit = chnNameValue[str[i]].value;
secUnit = chnNameValue[str[i]].secUnit;
if (secUnit) {
section = (section + number) * unit;
rtn += section;
section = 0;
} else {
section += (number * unit);
}
number = 0;
}
}
return rtn + section;
} catch (e) {
return 0;
}
}