input标签只能输入数字小数点 且小数点后只有两位 ,不允许存在两个小数点!!

时间:2020-11-30 20:23:58


$("#open").on('keyup', function (event) {

   var $amountInput = $(this);
   var tmptxt=$(this).val();
   //$(this).val(tmptxt.subString(0,1) + '.' + tmptxt.subString(2));

    var FirstChar=tmptxt.substr(0,1);

//使用字符分离获取输入的第一位

    var SecondChar=tmptxt.substr(1,2);
   // 使用字符分离获取输入的第二位
     if(FirstChar=="0"){
    SecondChar.replace(/[0,1,2,3,45,6,7,8,9]/,"0.");

    }

//如果第一位是0,将第一位替换成0.

  // $(this).val(tmptxt.replace(/\D|^0/g,''));
   event = window.event || event;
   if (event.keyCode == 37 | event.keyCode == 39) {
       return;
   }
   //先把非数字的都替换掉,除了数字和. 
   $amountInput.val($amountInput.val().replace(/[^\d.]/g, "").
       //只允许一个小数点              
       replace(/^\./g, "").replace(/\.{2,}/g, ".").
       //只能输入小数点后两位
       replace(".", "$#$").replace(/\./g, "").replace("$#$", ".").replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'));
           });
$("#open").on('blur', function () {
   var $amountInput = $(this);
   //最后一位是小数点的话,移除
   $amountInput.val(($amountInput.val().replace(/\.$/g, "")));
});