目录
前言
最近在学习利用Nodejs做小说爬虫时,需要将小说章节序号的汉字转换为阿拉伯数字,就在网上找了一段用户“水中熊”写的代码,原代码来源:
http://blog.csdn.net/gmd_web/article/details/55254131
一、如何实现转换?
利用中文数字中“十”“百”“千”等单位转换为10,100,1000等阿拉伯数字,再与单位前的数字相乘即可实现。
二、发现原代码问题
1.无法正确转换“十”至“十九”这十个中文数字
代码如下(示例):
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}
}
function ChineseToNumber(chnStr){
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(ty