您的位置:首页 > Web前端 > JavaScript

阿拉伯数字跟中文汉字互转js

2017-11-07 10:39 253 查看
有些时候需要用到阿拉伯数字转中文汉字的需求,阿拉伯数字在代码上比较好操作,比如++,–等操作,加上jsp里的foreach标签,status里可以知道当前行号,但是页面需要显示中文汉字,如第1阶段,第2阶段变成第一阶段,第二阶段等,这个时候就需要一个js进行转换。

阿拉伯数字–>中文汉字

代码如下:

<script type="text/javascript">
var chnNumChar = ["零","一","二","三","四","五","六","七","八","九"];
var chnUnitSection = ["","万","亿","万亿","亿亿"];
var chnUnitChar = ["","十","百","千"];

function SectionToChinese(section){
var strIns = '', chnStr = '';
var unitPos = 0;
var zero = true;
while(section > 0){
var v = section % 10;
if(v === 0){
if(!zero){
zero = true;
chnStr = chnNumChar[v] + chnStr;
}
}else{
zero = false;
strIns = chnNumChar[v];
strIns += chnUnitChar[unitPos];
chnStr = strIns + chnStr;
}
unitPos++;
section = Math.floor(section / 10);
}
return chnStr;
}

alert(SectionToChinese(123));
</script>


运行页面,弹出一百二十三



中文汉字–>阿拉伯数字

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
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(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;
}

alert(ChineseToNumber('二百二十九'));
</script>
</body>
</html>


运行弹出229

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: