JS將數字轉換為中文
阿新 • • 發佈:2018-06-11
var cti IT function script val else AR -c
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JS將數字轉換為中文</title> </head> <body> <script> // 定義轉換函數 function transform(tranvalue){ try{ var i=1; var dw2 = new Array("","萬","億");//大單位 vardw1 = new Array("拾","佰","仟");//小單位 var dw = new Array("零","壹","貳","叁","肆","伍","陸","柒","捌","玖");//整數部分用 //以下是小寫轉換成大寫顯示在合計大寫的文本框中 //分離整數與小數 var source = splits(tranvalue); var num = source[0]; var dig = source[1]; //轉換整數部分var k1=0;//計小單位 var k2=0;//計大單位 var sum = 0; var str=""; var len = source[0].length;//整數的長度 for(i=1;i<=len;i++){ var n = source[0].charAt(len-i);//取得某個位數上的數字 var bn = 0; if(len-i-1>=0){ bn= source[0].charAt(len-i-1);//取得某個位數前一位上的數字 } sum = sum+Number(n); if(sum!=0){ str = dw[Number(n)].concat(str);//取得該數字對應的大寫數字,並插入到str字符串的前面 if(n==‘0‘)sum = 0; } if(len-i-1>=0){//在數字範圍內 if(k1!=3){//加小單位 if(bn!=0){ str = dw1[k1].concat(str); } k1++; }else{//不加小單位,加大單位 k1=0; var temp = str.charAt(0); if(temp=="萬" || temp=="億")//若大單位前沒有數字則舍去大單位 str = str.substr( 1, str.length-1); str = dw2[k2].concat(str); sum = 0; } } if(k1==3)//小單位到千則大單位進一 { k2++;} } //轉換小數部分 var strdig=""; if(dig!=""){ var n = dig.charAt(0); if(n!=0){ strdig += dw[Number(n)]+"角";//加數字 } var n = dig.charAt(1); if(n!=0){ strdig += dw[Number(n)]+"分";//加數字 } } str += "元"+strdig; }catch(e){ return "0元"; } return str; } //拆分整數與小數 function splits(tranvalue){ var value = new Array(‘‘,‘‘); temp = tranvalue.split("."); for(var i=0;i<temp.length;i++){ value[i] = temp[i]; } return value; } // 調用 var a = ‘12345678‘; var b = transform(a); console.log(b); </script> </body> </html>
運行後的結果:
壹仟貳佰叁拾肆萬伍仟陸佰柒拾捌元
JS將數字轉換為中文