var_change={
ary0:["零","一","二","三","四","五","六","七","八","九"],
ary1:["","十","百","千"],
ary2:["","万","亿","兆"],
init:function(name){
this.name=name;
},
strrev:function(){
varary=[]
for(vari=this.name.length;i>=0;i--){
ary.push(this.name[i])
}
returnary.join("");
},//倒转字符串。
pri_ary:function(){
var$this=this
varary=this.strrev();
varzero=""
varnewary=""
vari4=-1
for(vari=0;i<ary.length;i++){
if(i%4==0){//首先判断万级单位,每隔四个字符就让万级单位数组索引号递增
i4++;
newary=this.ary2[i4]+newary;//将万级单位存入该字符的读法中去,它肯定是放在当前字符读法的末尾,所以首先将它叠加入$r中,
zero="";//在万级单位位置的“0”肯定是不用的读的,所以设置零的读法为空
}
//关于0的处理与判断。
if(ary[i]=='0'){//如果读出的字符是“0”,执行如下判断这个“0”是否读作“零”
switch(i%4){
case0:
break;
//如果位置索引能被4整除,表示它所处位置是万级单位位置,这个位置的0的读法在前面就已经设置好了,所以这里直接跳过
case1:
case2:
case3:
if(ary[i-1]!='0'){
zero="零"
}
;//如果不被4整除,那么都执行这段判断代码:如果它的下一位数字(针对当前字符串来说是上一个字符,因为之前执行了反转)也是0,那么跳过,否则读作“零”
break;
}
newary=zero+newary;
zero='';
}
else{//如果不是“0”
newary=this.ary0[parseInt(ary[i])]+this.ary1[i%4]+newary;//就将该当字符转换成数值型,并作为数组ary0的索引号,以得到与之对应的中文读法,其后再跟上它的的一级单位(空、十、百还是千)最后再加上前面已存入的读法内容。
}
}
if(newary.indexOf("零")==0){
newary=newary.substr(1)
}//处理前面的0
returnnewary;
}
}
//创建class类
functionchange(){
this.init.apply(this,arguments);
}
change.prototype=_change
//创建实例
vark=newchange("00102040");
alert(k.pri_ary())