JavaScript汉字转阿拉伯数字(改进稿)

博客探讨了在JavaScript中将汉字数字转换为阿拉伯数字时遇到的问题,包括无法正确处理'十'至'十九'及包含'两'的数字。作者分析了原代码的不足,并提供了修正后的解决方案,提倡良好的代码管理和维护习惯。
摘要由CSDN通过智能技术生成

目录

前言

一、如何实现转换?

二、发现原代码问题

1.无法正确转换“十”至“十九”这十个中文数字

2.无法正确转换带“两”字的中文数字

三、解决发现的问题

总结


前言

最近在学习利用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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值