<SCRIPT LANGUAGE="JavaScript">
<!--
function transform(str){ //数字必须在12位整数以内的字符串
//var str =document.all.num.value;
var cstr = new Array("零","壹","贰","叁","肆", "伍", "陆","柒","捌","玖");
var wstr = new Array("","","拾","佰","仟","萬","拾","佰","仟","亿","拾","佰","仟");
var len=str.length;
var i; var tmpstr,rstr;
rstr="";
for(i=1;i<=len;i++)
{
tmpstr=str.substr(len-i,1);
rstr=(cstr[parseInt(tmpstr)]+wstr[i]).concat(rstr);
}
rstr=rstr.replace(/拾零/g,"拾");
rstr=rstr.replace(/零拾/g,"零");
rstr=rstr.replace(/零佰/g,"零");
rstr=rstr.replace(/零仟/g,"零");
rstr=rstr.replace(/零萬/g,"萬"); for(i=1;i<=6;i++)
rstr=rstr.replace(/零零/g,"零");
rstr=rstr.replace(/零萬/g,"萬");//error
rstr=rstr.replace(/零亿/g,"億");
rstr=rstr.replace(/零零/g,"零");
rstr+="圆";
rstr=rstr.replace(/零圆/g,"");
return rstr;
}alert(transform("10000001"));
//-->
</SCRIPT>
<!--
function transform(str){ //数字必须在12位整数以内的字符串
//var str =document.all.num.value;
var cstr = new Array("零","壹","贰","叁","肆", "伍", "陆","柒","捌","玖");
var wstr = new Array("","","拾","佰","仟","萬","拾","佰","仟","亿","拾","佰","仟");
var len=str.length;
var i; var tmpstr,rstr;
rstr="";
for(i=1;i<=len;i++)
{
tmpstr=str.substr(len-i,1);
rstr=(cstr[parseInt(tmpstr)]+wstr[i]).concat(rstr);
}
rstr=rstr.replace(/拾零/g,"拾");
rstr=rstr.replace(/零拾/g,"零");
rstr=rstr.replace(/零佰/g,"零");
rstr=rstr.replace(/零仟/g,"零");
rstr=rstr.replace(/零萬/g,"萬"); for(i=1;i<=6;i++)
rstr=rstr.replace(/零零/g,"零");
rstr=rstr.replace(/零萬/g,"萬");//error
rstr=rstr.replace(/零亿/g,"億");
rstr=rstr.replace(/零零/g,"零");
rstr+="圆";
rstr=rstr.replace(/零圆/g,"");
return rstr;
}alert(transform("10000001"));
//-->
</SCRIPT>
{
var num = this;
if(!/^\d*(\.\d*)?$/.test(num)){alert("Number is wrong!"); return "Number is wrong!";} var AA = new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
var BB = new Array("","拾","佰","仟","萬","億","点","");
var a = (""+ num).replace(/(^0*)/g, "").split("."), k = 0, re = ""; for(var i=a[0].length-1; i>=0; i--)
{
switch(k)
{
case 0 : re = BB[7] + re; break;
case 4 : if(!new RegExp("0{4}\\d{"+ (a[0].length-i-1) +"}$").test(a[0]))
re = BB[4] + re; break;
case 8 : re = BB[5] + re; BB[7] = BB[5]; k = 0; break;
}
if(k%4 == 2 && a[0].charAt(i+2) != 0 && a[0].charAt(i+1) == 0) re = AA[0] + re;
if(a[0].charAt(i) != 0) re = AA[a[0].charAt(i)] + BB[k%4] + re; k++;
} if(a.length>1) //加上小数部分(如果有小数部分)
{
re += BB[6];
for(var i=0; i<a[1].length; i++) re += AA[a[1].charAt(i)];
}
return re;}
function Chinese(num) //将阿拉伯数字翻译成中文的大写数字
{
if(!/^\d*(\.\d*)?$/.test(num)){alert("Number is wrong!"); return false;} var AA = new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
var BB = new Array("","拾","佰","仟","萬","億","点","");
var a = (""+ num).replace(/(^0*)/g, "").split("."), k = 0, re = ""; for(var i=a[0].length-1; i>=0; i--)
{
switch(k)
{
case 0 : re = BB[7] + re; break;
case 4 : if(!new RegExp("0{4}\\d{"+ (a[0].length-i-1) +"}$").test(a[0]))
re = BB[4] + re; break;
case 8 : re = BB[5] + re; BB[7] = BB[5]; k = 0; break;
}
if(k%4 == 2 && a[0].charAt(i)=="0" && a[0].charAt(i+2) != "0") re = AA[0] + re;
if(a[0].charAt(i) != 0) re = AA[a[0].charAt(i)] + BB[k%4] + re; k++;
} if(a.length>1) //加上小数部分(如果有小数部分)
{
re += BB[6];
for(var i=0; i<a[1].length; i++) re += AA[a[1].charAt(i)];
}
return re;
}
document.write(Chinese("2345678.6792"));
<!--
Number.prototype.toChinese = function()
{
var num = Math.abs(this);
var _prefix = ""; if(num==0)
{
return "零";
}
else if(this<0)
{
_prefix = "负";
} var AA = new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
var BB = new Array("","拾","佰","仟","萬","億","点","");
var a = (""+ num).replace(/(^0*)/g, "").split("."), k = 0, re = ""; for(var i=a[0].length-1; i>=0; i--)
{
switch(k)
{
case 0 : re = BB[7] + re; break;
case 4 : if(!new RegExp("0{4}\\d{"+ (a[0].length-i-1) +"}$").test(a[0]))
re = BB[4] + re; break;
case 8 : re = BB[5] + re; BB[7] = BB[5]; k = 0; break;
}
if(k%4 == 2 && a[0].charAt(i+2) != 0 && a[0].charAt(i+1) == 0) re = AA[0] + re;
if(a[0].charAt(i) != 0) re = AA[a[0].charAt(i)] + BB[k%4] + re; k++;
} if(a.length>1) //加上小数部分(如果有小数部分)
{
re += BB[6];
for(var i=0; i<a[1].length; i++) re += AA[a[1].charAt(i)];
}
return _prefix + re;}
var a = -1;
alert(a.toChinese());//-->
</SCRIPT>
<html>
<head>
<script language="javascript">
function toChinese(num){
var arr1=new Array("元","万","亿");
num=num.toString();
var strRtn="";
if(num.charAt(0)=="-"){
strRtn+="(<b>负</b>)";
num=num.substring(1,num.length);
}
if(num.length>12){ alert("数值超过千亿,无法识别!"); return "数值超过千亿,无法识别!";}
var ss=num.split(".");
var Integer=ss[0];
var Float=ss[1];
var part=splitFour(Integer);
var plen=part.length;
for(var i=0;i<plen;i++){
if(i==0 && plen > 1) strRtn+=ReadFour(part[i],0)+arr1[plen-1-i];
else strRtn+=ReadFour(part[i],1)+arr1[plen-1-i];
}
if(!Float || !checkZero(Float)) {
strRtn+="整"
}else{
strRtn+=AfterPoint(Float);
}
return strRtn;
}function AfterPoint(num){
var arr1=new Array("角","分");
var arr2=new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
var str="";
for(var i=0;i<num.length;i++){
if(num.charAt(i)!="0")
str+=arr2[num.charAt(i)]+arr1[i];
else{
if(i!=num.length-1) str+="零";
}
}
return str;
}
function splitFour(num){
var len=num.length;
var count=Math.ceil(len/4);
var arr=new Array("");
for(var i=0;i<count;i++){
arr[count-i-1]=num.substring(len-4,len);
len-=4;
}
return arr;
}function ReadFour(num,iFlag){
var arr1=new Array("","拾","佰","仟");
var arr2=new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
num=num.toString();
var strRtn="";
len=num.length
for(var i=len-1;i>=0;i--){
if(num.charAt(len-i-1)!="0")
strRtn+=arr2[num.charAt(len-i-1)]+arr1[i];
else{
if(iFlag!=0 && strRtn.charAt(strRtn.length-1)!="零" && checkZero(num.substring(len-i,len)))
strRtn+="零";
}
}
return strRtn;
}
function checkZero(str){
for(var i=0;i<str.length;i++)
if(str.charAt(i)!="0") return true;
return false;
}
function format(num){
var tmpVar=Math.round(parseFloat(num,10)*100)/100;
var arr=tmpVar.toString().split(".");
if(arr[1]){
return tmpVar+(arr[1].length==1?"0":"");
}else
return tmpVar+".00";
}
function keyPressFlt(src){
var e=window.event;
code=e.keyCode;
if(code >=48 && code <=57) return true;
else if(code == 46 && src.value.indexOf('.')==-1) return true;
else{ window.event.keyCode=null; return false; }
}
</script>
</head>
<body>
<input id="txtNum" name="txtNum" width="140" value="1000000.00" onkeypress="keyPressFlt(this)">
<input type="button" onclick="javascript:txtRmb.value=toChinese(txtNum.value)" value="转换">
<p><input type="text" id="txtRmb" name="txtRmb" style="width:100%"></p>
</body>
</html>
num=prompt("请输入数字","");
while (num!=null){
num2=num;
if(isNaN(num) || num=="" || num=="0"){
if(num=="" || num=="0"){
alert(num);
}else{
alert("输入的非数字!请重新输入");
}
}else{
num_str="";
if(num.indexOf('.')!=-1){
num=num.substring(0,num.indexOf('.'));
}
c_num1=new Array('零','壹','贰','叁','肆','伍','陆','柒','捌','玖')
c_num2=new Array('','拾','佰','仟','')
c_num3=new Array('元','角','分')
x=0;
y=0;
while (num.charAt(0)=='0'){
num=num.substring(1,num.length) //去掉给定的数前面的零
}
for (i=0;i<num.length;i++){
if(x==4 && y!=8){
if(num.charAt(num.length-i-1)!='0'){
num_str=c_num1[parseInt(num.charAt(num.length-i-1))]+'万'+num_str
}else{
num_str='万'+num_str
}
x=0;
}else if(y==8){
if(num.charAt(num.length-i-1)!='0'){
num_str=c_num1[parseInt(num.charAt(num.length-i-1))]+'亿'+num_str
}else{
num_str='亿'+num_str
}
x=0;
y=0;
}else if(i>0){
if(num.charAt(num.length-i-1)!='0'){
num_str=c_num1[parseInt(num.charAt(num.length-i-1))]+c_num2[x]+num_str
}else{
if(num_str.charAt(0)!='零'){
num_str=c_num1[parseInt(num.charAt(num.length-i-1))]+num_str
}
}
}else{
if(num.charAt(num.length-i-1)!='0'){
num_str=c_num1[parseInt(num.charAt(num.length-i-1))]+num_str
}
}
x++;
y++;
}
if (num_str.charAt(num_str.length-1)=='零'){
num_str=num_str.substring(0,num_str.length-1);
}
//特殊处理
num_str=num_str.replace(/零万/g,"万");
num_str=num_str.replace(/零亿/g,"亿");
num_str=num_str.replace(/亿万/g,"亿");
num_str=num_str+c_num3[0];
dplace=num2.indexOf('.')
if(dplace!=-1){
if(dplace==num2.length-1){
num_str=num_str+"整"
}else{
if(dplace+2==num2.length){
num_str=num_str+c_num1[parseInt(num2.charAt(dplace+1))]
if(num2.charAt(dplace+1)!='0'){
num_str=num_str+c_num3[1]
}
}else if(dplace+3<=num2.length){
num_str=num_str+c_num1[parseInt(num2.charAt(dplace+1))]
if(num2.charAt(dplace+1)!='0'){
num_str=num_str+c_num3[1]
}
if(num2.charAt(dplace+2)!='0'){
num_str=num_str+c_num1[parseInt(num2.charAt(dplace+2))]+c_num3[2]
}
}
}
}else{
num_str=num_str+"整"
}
alert(num2+"\r"+num_str)
}
num=prompt("请输入数字",num2);
}
</script>
无意中搜到此贴,提供一个较完善的:<script>
function toRMB(str){
var str1="",str2="",str3="",str4="",j=0,z=0,Finddot=false;
//检查输入的合法性
if(str.length<1){alert("请输入至少一个数字");return "";}
for(j=0;j<str.length;j++){
if(0+str1==0)str1="";
if(str.charCodeAt(j)>47&&str.charCodeAt(j)<58){
str1+=str.charAt(j);
}else if(str.charCodeAt(j)==46&&Finddot==false){
Finddot=true;
str1+=str.charAt(j);
}else{
if(confirm("你输入的数字含有非法的字符,你还要继续转换吗?")==false)return "";
}
}
if(Finddot==false)str1+=".00";
if(str.length>16){alert("数值太大,无法正确转换");return "";}
//检查结束 //开始转换
str2="零壹贰叁肆伍陆柒捌玖";
str3="分角 元拾佰仟万拾佰仟亿拾佰仟万";
for(j=str1.length-1;j>=0;j--){
if(str1.charAt(str1.length-1-j)=="0"){
if(str3.charAt(j)=="万"||str3.charAt(j)=="亿"){str4+=str3.charAt(j);z=0;}else{z++;}
}else if(z>0&&str1.charAt(str1.length-1-j)!="."){
str4+="零"+str2.charAt(str1.charAt(str1.length-1-j))+str3.charAt(j);
z=0;
}else if(str1.charAt(str1.length-1-j)!="."){
str4+=str2.charAt(str1.charAt(str1.length-1-j))+str3.charAt(j);
}
}
if(str4.substring(str4.length-1)=="元")str4+="正";
else if(str4.substring(str4.length-1)!="角"&&str4.substring(str4.length-1)!="分")str4+="元正";
return str4;
//转换结束
}
</script>
<input name=orgnum type=text>
<input type="button" value="转换" onClick="alert(toRMB(orgnum.value));">
function toRMB(str){
var str1="",str2="",str3="",str4="",j=0,z=0,Finddot=false;
//检查输入的合法性
if(str.length<1){alert("请输入至少一个数字");return "";}
for(j=0;j<str.length;j++){
if(0+str1==0)str1="";
if(str.charCodeAt(j)>47&&str.charCodeAt(j)<58){
str1+=str.charAt(j);
}else if(str.charCodeAt(j)==46&&Finddot==false){
Finddot=true;
str1+=str.charAt(j);
}else{
if(confirm("你输入的数字含有非法的字符,你还要继续转换吗?")==false)return "";
}
}
if(Finddot==false)str1+=".00";
if(str1.length>16){alert("数值太大,无法正确转换");return "";}
//检查结束 //开始转换
str2="零壹贰叁肆伍陆柒捌玖";
str3="分角 元拾佰仟万拾佰仟亿拾佰仟万";
for(j=str1.length-1;j>=0;j--){
if(str1.charAt(str1.length-1-j)=="0"){
if(str3.charAt(j)=="万"||str3.charAt(j)=="亿"){str4+=str3.charAt(j);z=0;}else{z++;}
}else if(z>0&&str1.charAt(str1.length-1-j)!="."){
str4+="零"+str2.charAt(str1.charAt(str1.length-1-j))+str3.charAt(j);
z=0;
}else if(str1.charAt(str1.length-1-j)!="."){
str4+=str2.charAt(str1.charAt(str1.length-1-j))+str3.charAt(j);
}
}
if(str4.substring(str4.length-1)=="元")str4+="正";
else if(str4.substring(str4.length-1)!="角"&&str4.substring(str4.length-1)!="分")str4+="元正";
return str4;
//转换结束
}
</script>
<input name=orgnum type=text>
<input type="button" value="转换" onClick="alert(toRMB(orgnum.value));">