JavaScript实现人民币大小写转换

当使用支票或者签署合同时,需要用到大写人民币,常用的中文大写包括零、壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿。本文介绍下如何使用JavaScript实现将阿拉伯数字的人民币转换成大写。

工具地址:人民币大小写转换工具

人民币大小写转换

直接贴JavaScript代码,主要思想就是把汉字类型的人民币表述分为两个部分:数字+单位,最后如果是整数,则在最后加一个”整“,具体效果参考:人民币大小写转换工具

            var rmb_number = parseFloat(rmb_number).toFixed(2);
			var rmb_number = new String(Math.round(rmb_number * 100));
			var chineseValue = ""; 
			var String1 = "零壹贰叁肆伍陆柒捌玖"; 
			var String2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"; 
			var len = rmb_number.length; 
			var Ch1; 
			var Ch2; 
			var nZero = 0; 
			var String3; 
			$('.loading').removeClass('hide');
        	btn.button('loading');
			if (len > 15) {
				$('.loading-result').html('超出计算范围!');
	            btn.button('reset');
	            $('.loading-result').removeClass('hide');
	            $('.loading').addClass('hide');
				return;
			}
			if (rmb_number == 0) {
				chineseValue = "零元整";
				btn.button('reset');
	            $('.loading').addClass('hide');
	            $('.loading-result').addClass('hide');
	            $('#upper-case-result').removeClass('hide');
	            $('#upper-case-result').html(chineseValue);
				return;
			}

			String2 = String2.substr(String2.length - len, len);  
			for (var i = 0; i < len; i++) {
				String3 = parseInt(rmb_number.substr(i, 1), 10); 
				if (i != (len - 3) && i != (len - 7) && i != (len - 11) && i != (len - 15)) {
					if (String3 == 0) {
						Ch1 = "";
						Ch2 = "";
						nZero = nZero + 1;
					} else if (String3 != 0 && nZero != 0) {
						Ch1 = "零" + String1.substr(String3, 1);
						Ch2 = String2.substr(i, 1);
						nZero = 0;
					} else {
						Ch1 = String1.substr(String3, 1);
						Ch2 = String2.substr(i, 1);
						nZero = 0;
					}
				} else { 
					if (String3 != 0 && nZero != 0) {
						Ch1 = "零" + String1.substr(String3, 1);
						Ch2 = String2.substr(i, 1);
						nZero = 0;
					} else if (String3 != 0 && nZero == 0) {
						Ch1 = String1.substr(String3, 1);
						Ch2 = String2.substr(i, 1);
						nZero = 0;
					} else if (String3 == 0 && nZero >= 3) {
						Ch1 = "";
						Ch2 = "";
						nZero = nZero + 1;
					} else {
						Ch1 = "";
						Ch2 = String2.substr(i, 1);
						nZero = nZero + 1;
					}
					if (i == (len - 11) || i == (len - 3)) {
						Ch2 = String2.substr(i, 1);
					}
				}
				chineseValue = chineseValue + Ch1 + Ch2;
			}
			if (rmb_number.substr(len-2, 2) == "00") {
				chineseValue = chineseValue + "整";
			}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值