<!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("","万","亿");//大单位 var dw1 = 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>
运行后的结果:
壹仟贰佰叁拾肆万伍仟陆佰柒拾捌元