输入框只能输入负数,整数,2位小数(键盘弹起事件)

Posted jlfw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输入框只能输入负数,整数,2位小数(键盘弹起事件)相关的知识,希望对你有一定的参考价值。

html代码

 <input type="text" onkeyup="clearNoNum(this)">

js代码

   function clearNoNum(obj) {
       var str,num,arr,len,bool; 
       obj.style.imeMode =‘disabled‘   //禁止输入法
    
       obj.value = obj.value.replace("-", "$#$").replace(/-/g, "").replace("$#$","-");
       obj.value = obj.value.replace(".", "$#$").replace(/./g, "").replace("$#$",".");
    
       arr = obj.value.substring(0,1);
       num = /^[0-9]*$/.test(arr);
       len = obj.value.substring("0",1);

   if( ((arr == "-") || (num == true && arr !== "0" )) || /^[0-9]*$/.test(obj.value) && len !== "0"){

       bool =  obj.value.slice(1).indexOf("-");     
       if(/^[0-9]*$/.test(bool)){
          obj.value = null
       }

       obj.value = obj.value.replace(/^(-)*(d+).(dd).*$/, ‘$1$2.$3‘);// 只能输入两个小数     
       obj.value = obj.value.replace(/[^-?d.]/g, ""); // 清除"数字"和"."和"-"以外的字符

       if(obj.value !== "-" && obj.value !== "" & obj.value !== null){                    
            var val = parseFloat(obj.value);
            if (val >= 100000000000000000) {
                obj.value = "99999999999999.99";
            }             
               console.log(obj.value)  //最终值
      }
   }else{
      obj.value = null; 
   }
}

写的不好!
希望大神们指点
错误或者可以简写的地方

本文转载于:猿2048输入框只能输入负数,整数,2位小数(键盘弹起事件)

以上是关于输入框只能输入负数,整数,2位小数(键盘弹起事件)的主要内容,如果未能解决你的问题,请参考以下文章

js 正则表达式 来控制输入框 只能输入 7位正整数和2位小数,点号只允许输入一次~

Jquery 正则限制文本框只能输入数字(整数保留两位小数负数)

JS限制文本框只能输入数字(包括整数,小数,负数)

怎么让输入框只能输入数字和小数点?

iOS 限制输入框只能输入小数并且小数点后只能一位

js验证文本框只能输入正整数或带一位小数的数,该怎么写呢?