码迷,mamicode.com
首页 > Web开发 > 详细

input框只能输入纯数字+格式化输入金额与银行卡JS代码

时间:2017-07-27 11:34:32      阅读:326      评论:0      收藏:0      [点我收藏+]

标签:mon   wrap   put   blur   ==   amp   elf   for   func   

HTML页面代码示例:

<div class="wrap">
  <input type="text" id="bankCard" placeholder="输入银行卡号">
</div>
  
<div class="wrap">
  <input type="text" id="moneyNum" placeholder="输入金额">
</div>
格式化银行卡号(每四位分一组)
    $("#bankCard").on("keyup", formatBC);
    function formatBC(e){
       $(this).attr("data-oral", $(this).val().replace(/\ +/g,""));
      //$("#bankCard").attr("data-oral")获取未格式化的卡号
         var self = $.trim(e.target.value);
      var temp = this.value.replace(/\D/g, ‘‘).replace(/(....)(?=.)/g, ‘$1 ‘);
      if(self.length > 22){
        this.value = self.substr(0, 22);
        return this.value;
      }
      if(temp != this.value){
        this.value = temp;
      }
    }
格式化金额输入(XXX,XXX.XX)
      $("#moneyNum").on("keyup", formatMN);
         $("#moneyNum").on({
      focus: function(){
        $(this).attr("data-fmt",$(this).val()); //将当前值存入自定义属性
      },
      blur: function(){
        var oldVal=$(this).attr("data-fmt"); //获取原值
        var newVal=$(this).val(); //获取当前值
        if (oldVal!=newVal) {
          if(newVal == "" || isNaN(newVal)){
            this.value = "";
            return this.value;
          }
          var s = this.value;
          var temp;
  
          if(/.+(\..*\.|\-).*/.test(s)){
            return;
          }
          s = parseFloat((s + "").replace(/[^\d\.\-]/g, "")).toFixed(2) + "";
          var l = s.split(".")[0].split("").reverse(),
              r = s.split(".")[1];
          t = "";
          for(i = 0; i < l.length; i ++ ) {
            t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length && (l[i+1]!=‘-‘)? "," : "");
          }
          temp = t.split("").reverse().join("") + "." + r;
          this.value = temp;
          return this.value;
        }
      }
    });
      function formatMN(e){
      this.value = this.value.replace(/[^\d\.\-]/g,"");
      $(this).attr("data-oral", parseFloat(e.target.value.replace(/[^\d\.-]/g, "")));
      //$("#moneyNum").attr("data-oral")获取未格式化的金额
    }
Input框只能输入纯数字,不能输入其他符号
<input type="text"  onkeyup="value=value.replace(/[^\d]/g,‘‘) " ng-pattern="/[^a-zA-Z]/" />

input框只能输入纯数字+格式化输入金额与银行卡JS代码

标签:mon   wrap   put   blur   ==   amp   elf   for   func   

原文地址:http://www.cnblogs.com/codeZhen/p/7243721.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!