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

柔情只为你懂 2022-02-28 01:27 347阅读 0赞

html代码

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

js代码

  1. function clearNoNum(obj) {
  2. var str,num,arr,len,bool;
  3. obj.style.imeMode ='disabled' //禁止输入法
  4. obj.value = obj.value.replace("-", "$#$").replace(/\-/g, "").replace("$#$","-");
  5. obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$",".");
  6. arr = obj.value.substring(0,1);
  7. num = /^[0-9]*$/.test(arr);
  8. len = obj.value.substring("0",1);
  9. if( ((arr == "-") || (num == true && arr !== "0" )) || /^[0-9]*$/.test(obj.value) && len !== "0"){
  10. bool = obj.value.slice(1).indexOf("-");
  11. if(/^[0-9]*$/.test(bool)){
  12. obj.value = null
  13. }
  14. obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');// 只能输入两个小数
  15. obj.value = obj.value.replace(/[^\-?\d.]/g, ""); // 清除"数字"和"."和"-"以外的字符
  16. if(obj.value !== "-" && obj.value !== "" & obj.value !== null){
  17. var val = parseFloat(obj.value);
  18. if (val >= 100000000000000000) {
  19. obj.value = "99999999999999.99";
  20. }
  21. console.log(obj.value) //最终值
  22. }
  23. }else{
  24. obj.value = null;
  25. }
  26. }

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

发表评论

表情:
评论列表 (有 0 条评论,347人围观)

还没有评论,来说两句吧...

相关阅读