js将金额小写自动转换成大写

function cmycurd(){  //转成人民币大写金额形式 
   var num =$("#lowercase").val();//num也可以是传参的方式
   var str1 = '零壹贰叁肆伍陆柒捌玖';  //0-9所对应的汉字 
   var str2 = '万仟佰拾亿仟佰拾万仟佰拾元角分'; //数字位所对应的汉字 
   var str3;    //从原num值中取出的值 
   var str4;    //数字的字符串形式 
   var str5 = '';  //人民币大写金额形式 
   var i;    //循环变量 
   var j;    //num的值乘以100的字符串长度 
   var ch1;    //数字的汉语读法 
   var ch2;    //数字位的汉字读法 
   var nzero = 0;  //用来计算连续的零值是几个 
   num=num.replace(",","");//把逗号替换
   num = Math.abs(num).toFixed(2);  //将num取绝对值并四舍五入取2位小数 
   str4 = (num * 100).toFixed(0).toString();  //将num乘100并转换成字符串形式 
   j = str4.length;      //找出最高位 
   str2 = str2.substr(15-j);    //取出对应位数的str2的值。如:200.55,j为5所以str2=佰拾元角分 
   
   //循环取出每一位需要转换的值 
   for(i=0;i<j;i++){ 
     str3 = str4.substr(i,1);   //取出需转换的某一位的值 
     if (i != (j-3) && i != (j-7) && i != (j-11) && i != (j-15)){    //当所取位数不为元、万、亿、万亿上的数字时 
    if (str3 == '0'){ 
      ch1 = ''; 
      ch2 = ''; 
   nzero = nzero + 1; 
    } 
    else{ 
      if(str3 != '0' && nzero != 0){ 
        ch1 = '零' + str1.substr(str3*1,1); 
           ch2 = str2.substr(i,1); 
           nzero = 0; 
   } 
   else{ 
     ch1 = str1.substr(str3*1,1); 
           ch2 = str2.substr(i,1); 
           nzero = 0; 
         } 
    } 
  } 
  else{ //该位是万亿,亿,万,元位等关键位 
       if (str3 != '0' && nzero != 0){ 
         ch1 = "零" + str1.substr(str3*1,1); 
         ch2 = str2.substr(i,1); 
         nzero = 0; 
       } 
       else{ 
      if (str3 != '0' && nzero == 0){ 
           ch1 = str1.substr(str3*1,1); 
           ch2 = str2.substr(i,1); 
           nzero = 0; 
   } 
         else{ 
     if (str3 == '0' && nzero >= 3){ 
             ch1 = ''; 
             ch2 = ''; 
             nzero = nzero + 1; 
        } 
        else{ 
       if (j >= 11){ 
               ch1 = ''; 
               nzero = nzero + 1; 
    } 
    else{ 
      ch1 = ''; 
      ch2 = str2.substr(i,1); 
      nzero = nzero + 1; 
    } 
           } 
   } 
    } 
  } 
     if (i == (j-11) || i == (j-3)){  //如果该位是亿位或元位,则必须写上 
         ch2 = str2.substr(i,1); 
     } 
     str5 = str5 + ch1 + ch2; 
     
     if (i == j-1 && str3 == '0' ){   //最后一位(分)为0时,加上“整” 
       str5 = str5 + '整'; 
     } 
   } 
   if (num == 0){ 
     str5 = '零元整'; 
   } 
  $("#upercase").val(str5);

}


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值