今天研究了这个小程序,不算难,但是开始的时候很不好分析,分享给大家
<!doctype html>
<html>
<head>
<title>Document</title>
<script type="text/javascript">
var _convertNum = {
/*单位和数字的定义*/
arrNum : ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"],
arrUnitEle : ["","拾","佰","仟"],
arrUnitAdv : ["","万","亿","兆"],
init : function (oriNum) {
this.oriNum = oriNum;
while(this.oriNum.indexOf('0') == 0){
this.oriNum = this.oriNum.substr(1);
}
},
inversion : function() {
return this.oriNum.split("").reverse().join("");
},
convert : function () {
var invNum = this.inversion();
var newNumber = '';
var zero = '';
var unit = -1;
for(var i = 0; i< invNum.length; i++) {
/*对万级单位判断,每隔4个数字就让万级数组索引加1*/
if (i % 4 == 0) {
unit++;
newNumber = this.arrUnitAdv[unit] + newNumber;
zero = '';
}
/*处理0*/
if(invNum[i] == '0'){
switch (i % 4){
case 0: break;
case 1:
case 2:
case 3:
if(invNum[i - 1] != '0'){
zero = '零';
}
break;
}
newNumber = zero + newNumber;
zero = '';
}else{
newNumber = this.arrNum[parseInt(invNum[i])] + this.arrUnitEle[i % 4] + newNumber;
}
}
return newNumber;
}
}
/*定义类*/
function changeNum(){
this.init.apply(this, arguments);
}
changeNum.prototype = _convertNum;
/*创建对象实例*/
function change(){
var number = document.getElementById("number").value;
var c = new changeNum(number);
alert(c.convert());
}
</script>
</head>
<body>
<input type="text" id="number" />
<br/>
<input type="button" value="转换" οnclick="change()">
</body>
</html>
能完成基本的转换操作,如果发现BUG欢迎大家提出来