java机试题人民币大小写转换器_用JavaScript实现 人民币小写转换为大写

看看其他版块像Java、PHP都有很多文章,可是web前端开发这里啥都没有,或许是新开课程,或许是学的人少?今天我在这里写篇文章做一个抛砖引玉的作用,希望看到的人都积极把你们的代码也共享给我们大家,相互学习:);当然也有另外一个目的,自从用了4G以后,流量消失的很快,版主是不是。。。。嘿嘿

这里介绍一个通过取余的办法来实现将人民币小写转换为大写形式,个人认为比TTS上面的答案更容易让一些初学程序的同学理解,而且代码也就30行,比百度上面的找的方法还少。

function RmbtoChinese(rmb){

var reg=/^\D/;//定义正则表达式,检查第一个字符是否为数字;

if((reg.test(rmb))||(rmb.length>=17)){//同时检查输入小写金额是否大于16位数?

return (reg.test(rmb))?"对不起,您输入的金额不正确!":"请输入小于九千万亿以下的数据!";

}else{

var number=parseInt(rmb);//大于16位数是这里会直接转为科学计算法,后面取余时计算不准确;

var str=[];//定义一个接受转换结果额字符串数组;

var cn=["","拾","佰","仟"];//配合 j 使用

var cns=["零","壹","贰","叁","肆","伍","陆","柒","捌","玖"];//用余数作为该数组的下标,返回对应的大写;

var temp=number;//创建临时变量temp;为了便于理解,假设temp为 54321

for (var j=0,n=0;temp!=0;j++,n++){// j 用于判断 个 拾 佰 仟 万 ,n 用于判断 亿 位;

//下面一步取余,如果余数为零,则不需要加cn=["","拾","佰","仟"]

temp%10==0?str=cns[temp%10]+str:str=cns[temp%10]+cn[j]+str;//

temp=(temp-temp%10)/10;//54321减去54321%10后为54320,除以十(54320/10)后为5432,

if(j%3==0&&j!=0){//当 j 为3时表示已经到了第四位,下次循环时到了 万 位

if(temp!=0) n%7!=0?str="万"+str:str="亿"+str;// 54321到这个时候str应该为 万肆仟叁佰二拾一

j-=4;//重置 j 为0;

}

}

str=str.replace(/[零]+/g,"零");//去掉重复的零

str=str.replace(/[零][亿]+/g,"亿");

str=str.replace(/[零][万]+/g,"万");

str=str.replace(/[零][仟]+/g,"仟");

str=str.replace(/[零][佰]+/g,"佰");

str=str.replace(/[零][拾]+/g,"拾");

str=str.replace(/[万][仟]+/g,"万");

str=str.replace(/[亿][万]+/g,"亿");

str=str.replace(/[壹][拾]/,"拾");//如果第一位为 壹拾万····,则改为十万······

if(str[str.length-1]=="零") str=str.slice(0,str.length-1);//去掉末尾的零

return str+"元整";//返回结果

}//else结束

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值