關於js的數字轉中文的問題

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章