用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结束
 }
 
                    【免责声明】本文部分系转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,如涉及作品内容、版权和其它问题,请在30日内与我们联系,我们会予以重改或删除相关文章,以保证您的权益!
Java开发高端课程免费试学
大咖讲师+项目实战全面提升你的职场竞争力
- 海量实战教程
- 1V1答疑解惑
- 行业动态分析
- 大神学习路径图
相关推荐
更多 
							
							
						 
							 
									2017-10-24
 
							 
									2017-11-23
 
							
							
						 
            Java开班时间
- 
                    北京 丨 10月31日 火速抢座
- 
                    上海 丨 10月31日 火速抢座
- 
                    广州 丨 10月31日 火速抢座
- 
                    兰州 丨 10月31日 火速抢座
- 
                    杭州 丨 10月31日 火速抢座
- 
                    南京 丨 10月31日 火速抢座
- 
                    沈阳 丨 10月31日 火速抢座
- 
                    大连 丨 10月31日 火速抢座
- 
                    长春 丨 10月31日 火速抢座
- 
                    哈尔滨 丨 10月31日 火速抢座
- 
                    济南 丨 10月31日 火速抢座
- 
                    青岛 丨 10月31日 火速抢座
- 
                    烟台 丨 10月31日 火速抢座
- 
                    西安 丨 10月31日 火速抢座
- 
                    天津 丨 10月31日 火速抢座
- 
                    石家庄 丨 10月31日 火速抢座
- 
                    保定 丨 10月31日 火速抢座
- 
                    郑州 丨 10月31日 火速抢座
- 
                    合肥 丨 10月31日 火速抢座
- 
                    太原 丨 10月31日 火速抢座
- 
                    苏州 丨 10月31日 火速抢座
- 
                    武汉 丨 10月31日 火速抢座
- 
                    成都 丨 10月31日 火速抢座
- 
                    重庆 丨 10月31日 火速抢座
- 
                    厦门 丨 10月31日 火速抢座
- 
                    福州 丨 10月31日 火速抢座
- 
                    珠海 丨 10月31日 火速抢座
- 
                    南宁 丨 10月31日 火速抢座
- 
                    东莞 丨 10月31日 火速抢座
- 
                    贵阳 丨 10月31日 火速抢座
- 
                    昆明 丨 10月31日 火速抢座
- 
                    洛阳 丨 10月31日 火速抢座
- 
                    临沂 丨 10月31日 火速抢座
- 
                    潍坊 丨 10月31日 火速抢座
- 
                    运城 丨 10月31日 火速抢座
- 
                    呼和浩特丨10月31日 火速抢座
- 
                    长沙 丨 10月31日 火速抢座
- 
                    南昌 丨 10月31日 火速抢座
- 
                    宁波 丨 10月31日 火速抢座
- 
                    深圳 丨 10月31日 火速抢座
- 
                    大庆 丨 10月31日 火速抢座
 
					 
								 【热点话题】
						【热点话题】
					 
					 
								 
								 
                     
                     
             
             
             
             
                     
                     
                     
                     
                     
                    



 
				 
				 
				 
				 400-111-8989
				400-111-8989
			 
				 lihm@tedu.cn
				lihm@tedu.cn
			
 
	

 
			 
			 
			 
			 
			
			 
					 
					 
				 
					 
					