<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>数字货币到中文货币的转换</title>
<script type="text/javascript" language="javascript">
function Transform()
{
var num =document.getElementById("num").value;
for(i=num.length-1;i>=0;i--)
{
num=num.replace(",","");//替换文本框中的“,”
num=num.replace(" ","");//替换文本框中的空格
}
num=num.replace("¥","");//替换掉可能出现的¥字符
if(isNaN(num))
{
//验证输入的字符是否为数字
alert("请检查输入的金额是否正确");
return;
}
//---字符处理完毕,开始转换,转换采用前后两部分分别转换---//
part=new String(num).split(‘.‘);
newchar="";
//小数点前进行转化
for(i=part[0].length-1;i>=0;i--)
{
if(part[0].length>10)
{
alert("为数过大,无法计算");
return"";
}
//若数量超过拾亿单位,提示=
tmpnewchar=""
var 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:
if (perchar != 0)
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("零角","");
newcahr=newchar.replace("零分","");
if(newchar.charAt(newchar.length-1)=="元"||newchar.charAt(newchar.length-1)=="角")
newchar=newchar+"整";
alert(newchar);
}
</script>
<body>
<form action="" method="post" name="form1">
数字货币:
<input type="text" name="num" id="num" />
<input type="button" name="btn1" id="button" value="转换" onclick="Transform()"/>
</form>
</body>
</html>
原文:http://www.cnblogs.com/danmao/p/3815765.html