jscript实现的客户端小写金额转换成人民币大写金额(最大千万元位)

<script>
function getUppercase(number){     //最大千万位
 var intPart = parseInt(number).toString(); //整数部分
 if(intPart.length > 8){
  alert("数字长度超过限制,最大只能转换千万元位!");
  return "";
 }
 var floatPart;        //小数部分
 if(number.indexOf(".") > -1){
  floatPart = number.substr(number.indexOf(".") + 1);
 }else{
  floatPart = "00";
 }
 var digitalCn = new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
 var unitCn = new Array("元","拾","佰","仟","万");  //元、角、分因位置固定,可直接判断,不需要计算
 var dArray = new Array(); //由小写数字组成的数组,dArray([m][n])。m=数字长度,n=2;n0=数字,n1=数字排位
 var n = intPart.length;
 for(i=0;i<intPart.length;i++){
  n--;
  dArray[i] = new Array(intPart.substr(i,1),n);
 }
 var resultStr = "";
 var mod;
 var divisor = 5;
 var tenGrand = 4; //万位
 for(i=0;i<dArray.length;i++){
  if(dArray[i][0] == 0 && dArray[i][1] != 0 && dArray[i][1] != 4){  //某位为0,且不是最后一位和万位时,不加单位
   resultStr += digitalCn[dArray[i][0]];
  }else{
   mod = dArray[i][1] % divisor
   if(dArray[i][1] >= divisor){mod += 1;}
   resultStr += digitalCn[dArray[i][0]] + unitCn[mod];
  }
 }
// alert(resultStr);
 var re
 re = /零+万/ig;
 resultStr = resultStr.replace(re,"万零");  //万前面的N个零都替换成“万零”
 re = /零{2,}/ig;
 resultStr = resultStr.replace(re,"零");  //不是“元”前面的2个以上的零都替换成1个零
 if(floatPart != "00"){
  re = /零+元/ig;
  resultStr = resultStr.replace(re,"零");  //“元”前面N个零都替换成“元”
  resultStr += digitalCn[parseInt(floatPart.substr(0,1))] + "角";
  resultStr += digitalCn[parseInt(floatPart.substr(1,1))] + "分";
 }else{
  re = /零+元/ig;
  resultStr = resultStr.replace(re,"元");  //“元”前面N个零都替换成“元”
  resultStr += "整";
 }
 return "人民币"+resultStr;
}
</script>  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值