<script>
var num = window.prompt('请输入一个数字:');
console.log( num.length);
var len = num.length;
var arr = "";
if(len > 10){
alert("it's to long");
} else{
for(var i = 0; i < len;i++){
arr += toCn(num[i]) + toRead(len-i)+" ";//字符串的拼接
}
console.log(arr);
}
//将数字转化为中文字符
function toCn(target){
switch(target){
case '1': return '壹';
case '2': return '贰';
case '3': return '叁';
case '4': return '肆';
case '5': return '伍';
case '6': return '陆';
case '7': return '柒';
case '8': return '捌';
case '9': return '玖';
case '0': return '零';
}
}
//将长度转化为平时写作的习惯
function toRead(leng){
switch(leng){
case 10: return "拾";
case 9: return "亿";
case 8: return "仟";
case 7: return "佰";
case 6: return "拾";
case 5: return "万";
case 4: return "仟";
case 3: return "佰";
case 2: return "拾";
case 1: return "元整";
}
}
</script>
其中有几个问题,第一 关于首位是0不用读数的问题,可以通过加一个判定方法
if(num[i]== 0){
//如果第一个数字是0,那么从第二个数字开始读取,用count来计算指针
count++;
arr += toCn(num[i + count]) + toRead(len - i - count)+" ";
}
第二个是末尾是0的问题
从末尾开始测试是否为0
处理方法与上面的类似,通过 j 充当计数器,然后忽略剩下的几位。补齐“”元整“”
第三个中间为0读数bug的问题
目前暂时没有想到好的办法 留待以后处理