HTML代码 <script> function Arabia_to_Chinese(Num){ for(i=Num.length-1;i>=0;i--) { Num = Num.replace(",","")//替换tomoney()中的“,” Num = Num.replace(" ","")//替换tomoney()中的空格 } Num = Num.replace("¥","")//替换掉可能出现的¥字符 if(isNaN(Num)) { //验证输入的字符是否为数字 alert("请检查小写金额是否正确"); return; } //---字符处理完毕,开始转换,转换采用前后两部分分别转换---// part = String(Num).split("."); newchar = ""; //小数点前进行转化 for(i=part[0].length-1;i>=0;i--){ if(part[0].length > 10){ alert("位数过大,无法计算");return "";}//若数量超过拾亿单位,提示 tmpnewchar = "" perchar = part[0].charAt(i); switch(perchar){ case "0": tmpnewchar="零" + tmpnewchar ;break; case "1": tmpnewchar="壹" + tmpnewchar ;break; case "2": tmpnewchar="贰" + tmpnewchar ;break; case "3": tmpnewchar="叁" + tmpnewchar ;break; case "4": tmpnewchar="肆" + tmpnewchar ;break; case "5": tmpnewchar="伍" + tmpnewchar ;break; case "6": tmpnewchar="陆" + tmpnewchar ;break; case "7": tmpnewchar="柒" + tmpnewchar ;break; case "8": tmpnewchar="捌" + tmpnewchar ;break; case "9": tmpnewchar="玖" + tmpnewchar ;break; } switch(part[0].length-i-1){ case 0: tmpnewchar = tmpnewchar +"元" ;break; case 1: if(perchar!=0)tmpnewchar= tmpnewchar +"拾" ;break; case 2: if(perchar!=0)tmpnewchar= tmpnewchar +"佰" ;break; case 3: if(perchar!=0)tmpnewchar= tmpnewchar +"仟" ;break; case 4: tmpnewchar= tmpnewchar +"万" ;break; case 5: if(perchar!=0)tmpnewchar= tmpnewchar +"拾" ;break; case 6: if(perchar!=0)tmpnewchar= tmpnewchar +"佰" ;break; case 7: if(perchar!=0)tmpnewchar= tmpnewchar +"仟" ;break; case 8: tmpnewchar= tmpnewchar +"亿" ;break; case 9: tmpnewchar= tmpnewchar +"拾" ;break; } newchar = tmpnewchar + newchar; } //小数点之后进行转化 if(Num.indexOf(".")!=-1){ if(part[1].length > 2) { alert("小数点之后只能保留两位,系统将自动截段"); part[1] = part[1].substr(0,2) } for(i=0;i<part[1].length;i++){ tmpnewchar = "" perchar = part[1].charAt(i) switch(perchar){ case "0": tmpnewchar="零" + tmpnewchar ;break; case "1": tmpnewchar="壹" + tmpnewchar ;break; case "2": tmpnewchar="贰" + tmpnewchar ;break; case "3": tmpnewchar="叁" + tmpnewchar ;break; case "4": tmpnewchar="肆" + tmpnewchar ;break; case "5": tmpnewchar="伍" + tmpnewchar ;break; case "6": tmpnewchar="陆" + tmpnewchar ;break; case "7": tmpnewchar="柒" + tmpnewchar ;break; case "8": tmpnewchar="捌" + tmpnewchar ;break; case "9": tmpnewchar="玖" + tmpnewchar ;break; } if(i==0)tmpnewchar =tmpnewchar + "角"; if(i==1)tmpnewchar = tmpnewchar + "分"; newchar = newchar + tmpnewchar; } } //替换所有无用汉字 while(newchar.search("零零") != -1) newchar = newchar.replace("零零", "零"); newchar = newchar.replace("零亿", "亿"); newchar = newchar.replace("亿万", "亿"); newchar = newchar.replace("零万", "万"); newchar = newchar.replace("零元", "元"); newchar = newchar.replace("零角", ""); newchar = newchar.replace("零分", ""); if (newchar.charAt(newchar.length-1) == "元" || newchar.charAt(newchar.length-1) == "角") newchar = newchar+"整" return newchar; } </script> <input type="text" id="txt1" value="" /> <input type="button" value="转" οnclick="txt1.value=Arabia_to_Chinese(txt1.value)" /> [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行] HTML代码 <script> function regInput(reg) { var srcElem = event.srcElement var oSel = document.selection.createRange() oSel = oSel.duplicate() oSel.text = "" var srcRange = srcElem.createTextRange() oSel.setEndPoint("StartToStart", srcRange) var num = oSel.text + String.fromCharCode(event.keyCode) + srcRange.text.substr(oSel.text.length) event.returnValue = reg.test(num) } function chineseNumber(num) { if (isNaN(num) || num > Math.pow(10, 12)) return "" var cn = "零壹贰叁肆伍陆柒捌玖" var unit = new Array("拾佰仟", "分角") var unit1= new Array("万亿", "") var numArray = num.toString().split(".") var start = new Array(numArray[0].length-1, 2) function toChinese(num, index) { var num = num.replace(//d/g, function ($1) { return cn.charAt($1)+unit[index].charAt(start--%4 ? start%4 : -1) }) return num } for (var i=0; i<numArray.length; i++) { var tmp = "" for (var j=0; j*4<numArray[i].length; j++) { var strIndex = numArray[i].length-(j+1)*4 var str = numArray[i].substring(strIndex, strIndex+4) var start = i ? 2 : str.length-1 var tmp1 = toChinese(str, i) tmp1 = tmp1.replace(/(零.)+/g, "零").replace(/零+$/, "") tmp1 = tmp1.replace(/^壹拾/, "拾") tmp = (tmp1+unit1[i].charAt(j-1)) + tmp } numArray[i] = tmp } numArray[1] = numArray[1] ? numArray[1] : "" numArray[0] = numArray[0] ? numArray[0]+"圆" : numArray[0], numArray[1] = numArray[1].replace(/^零+/, "") numArray[1] = numArray[1].match(/分/) ? numArray[1] : numArray[1]+"整" return numArray[0]+numArray[1] } function aNumber(num) { var numArray = new Array() var unit = "亿万圆$" for (var i=0; i<unit.length; i++) { var re = eval("/"+ (numArray[i-1] ? unit.charAt(i-1) : "") +"(.*)"+unit.charAt(i)+"/") if (num.match(re)) { numArray[i] = num.match(re)[1].replace(/^拾/, "壹拾") numArray[i] = numArray[i].replace(/[零壹贰叁肆伍陆柒捌玖]/g, function ($1) { return "零壹贰叁肆伍陆柒捌玖".indexOf($1) }) numArray[i] = numArray[i].replace(/[分角拾佰仟]/g, function ($1) { return "*"+Math.pow(10, "分角 拾佰仟 ".indexOf($1)-2)+"+" }).replace(/^/*|/+$/g, "").replace(/整/, "0") numArray[i] = "(" + numArray[i] + ")*"+Math.ceil(Math.pow(10, (2-i)*4)) } else numArray[i] = 0 } return eval(numArray.join("+")) } </script> <input id=up size=60 οnkeypress="regInput(/^/d{0,12}(/./d{0,2})?$/)"><button οnclick="lw.value = chineseNumber(up.value)">转为大写</button><br> <input id=lw size=60 value="壹仟壹佰壹拾壹圆整"><button οnclick="up.value = aNumber(lw.value)">转为小写</button> [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]