js将数字转化为大写金额

/*将数字转换为大写金额*/  
export function changeToChinese (Num) {  
  //判断如果传递进来的不是字符的话转换为字符  
  if(typeof Num == "number") {  
      Num = new String(Num);  
  };  
  Num = Num.replace(/,/g, "") //替换tomoney()中的“,”  
  Num = Num.replace(/ /g, "") //替换tomoney()中的空格  
  Num = Num.replace(/¥/g, "") //替换掉可能出现的¥字符  
  if(isNaN(Num)) { //验证输入的字符是否为数字  
      //alert("请检查小写金额是否正确");  
      return "";  
  };  
  //字符处理完毕后开始转换,采用前后两部分分别转换  
  var part = String(Num).split(".");  
  var newchar = "";  
  //小数点前进行转化  
  for(var i = part[0].length - 1; i >= 0; i--) {  
      if(part[0].length > 10) {  
          return "";  
          //若数量超过拾亿单位,提示  
      }  
      var tmpnewchar = ""  
      var perchar = part[0].charAt(i);  
      switch(perchar) {  
          case "0":  
              tmpnewchar = "零" + tmpnewchar;  
              break;  
          case "1":  
              tmpnewchar = "壹" + tmpnewchar;  
              break;  
          case "2":  
              tmpnewchar = "贰" + tmpnewchar;  
              break;  
          case "3":  
              tmpnewchar = "叁" + tmpnewchar;  
              break;  
          case "4":  
              tmpnewchar = "肆" + tmpnewchar;  
              break;  
          case "5":  
              tmpnewchar = "伍" + tmpnewchar;  
              break;  
          case "6":  
              tmpnewchar = "陆" + tmpnewchar;  
              break;  
          case "7":  
              tmpnewchar = "柒" + tmpnewchar;  
              break;  
          case "8":  
              tmpnewchar = "捌" + tmpnewchar;  
              break;  
          case "9":  
              tmpnewchar = "玖" + tmpnewchar;  
              break;  
      }  
      switch(part[0].length - i - 1) {  
          case 0:  
              tmpnewchar = tmpnewchar + "元"; 
                  break;  
          case 1:  
              if(perchar != 0) tmpnewchar = tmpnewchar + "拾";  
              break;  
          case 2:  
              if(perchar != 0) tmpnewchar = tmpnewchar + "佰";  
              break;  
          case 3:  
              if(perchar != 0) tmpnewchar = tmpnewchar + "仟";  
              break; 
              case 4:  
              tmpnewchar = tmpnewchar + "万";  
              break; 
              case 5:  
              if(perchar != 0) tmpnewchar = tmpnewchar + "拾";  
              break; 
              case 6:  
              if(perchar != 0) tmpnewchar = tmpnewchar + "佰";  
              break; 
              case 7:  
              if(perchar != 0) tmpnewchar = tmpnewchar + "仟";  
              break;  
          case 8:  
              tmpnewchar = tmpnewchar + "亿";  
              break;  
          case 9:  
              tmpnewchar = tmpnewchar + "拾";  
              break;  
      }  
      var newchar = tmpnewchar + newchar;  
  } 
      //小数点之后进行转化  
  if(Num.indexOf(".") != -1) {  
      if(part[1].length > 2) {  
          // alert("小数点之后只能保留两位,系统将自动截断");  
          part[1] = part[1].substr(0, 2)  
      }  
      for(i = 0; i < part[1].length; i++) {  
          tmpnewchar = ""  
          perchar = part[1].charAt(i)  
          switch(perchar) {  
              case "0":  
                  tmpnewchar = "零" + tmpnewchar;  
                  break;  
              case "1":  
                  tmpnewchar = "壹" + tmpnewchar;  
                  break;  
              case "2":  
                  tmpnewchar = "贰" + tmpnewchar;  
                  break;  
              case "3":  
                  tmpnewchar = "叁" + tmpnewchar; 
                  break;  
              case "4":  
                  tmpnewchar = "肆" + tmpnewchar; 
                  break;  
              case "5":  
                  tmpnewchar = "伍" + tmpnewchar;  
                  break;  
              case "6":  
                  tmpnewchar = "陆" + tmpnewchar;  
                  break;  
              case "7":  
                  tmpnewchar = "柒" + tmpnewchar;  
                  break;  
              case "8":  
                  tmpnewchar = "捌" + tmpnewchar;  
                  break;  
              case "9":  
                  tmpnewchar = "玖" + tmpnewchar;  
                  break;  
          }  
          if(i == 0) tmpnewchar = tmpnewchar + "角";  
          if(i == 1) tmpnewchar = tmpnewchar + "分";  
          newchar = newchar + tmpnewchar;  
      }  
  }  
  //替换所有无用汉字  
  while(newchar.search("零零") != -1)  
      newchar = newchar.replace("零零", "零");  
  newchar = newchar.replace("零亿", "亿");  
  newchar = newchar.replace("亿万", "亿");  
  newchar = newchar.replace("零万", "万");  
  newchar = newchar.replace("零元", "元");  
  newchar = newchar.replace("零角", "");  
  newchar = newchar.replace("零分", "");  
  if(newchar.charAt(newchar.length - 1) == "元") {  
      newchar = newchar + "整"  
  }  
  return newchar;  
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值