<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的問題
目前暫時沒有想到好的辦法 留待以後處理