今天去武汉一家公司去笔试,遇到一个JavaScript题,没做出来,回来在网上找了一下,又做了一下修改,勉强能用,但是还有一些漏洞,有些地方还是不懂,真是头疼,现在把题目和答案贴出来,请高手指点一下啊,帮忙加上注释,先谢谢了!
题目:
用JavaScript实现金额转换,阿拉伯数字的金额转换成中国传统的形式如(¥1011)->(一千零一拾一元整)输出。
解决方案:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<script>
function moneytormb(money){
var dw,num,rmb,dwpos,i;
dw= "分角元十百千万十百千亿十百千兆十百千万 ";
num= "零壹贰叁肆伍陆柒捌玖 ";
rmb= "";
money=money.toString();//将钱数转换为字符串
dwpos=money.split( ".")[0].length+1;
money=money.replace(/\./, "");
for(i=0;i <money.length;i++){
var a=money.substr(i,1);
var b=num.substr(a,1);
var c=dw.substr(Math.abs(dwpos-i),1);
rmb=rmb+b+c;
}
rmb=rmb.replace(/零[千百十角]/g, "零 ");
rmb=rmb.replace(/零零零零[兆亿万元]/g, " ");
rmb=rmb.replace(/零{2,}/g, "零 ");
rmb=rmb.replace(/零([兆亿万元])/g, "$1 ");
rmb=rmb.replace(/^元/g, " ");
rmb=rmb.replace(/零分$/g, " ");
rmb=rmb.replace(/元$/g, "元整 ");
return rmb;
}
alert(moneytormb(110110.35));
</script>
<BODY>
</BODY>
</HTML>