求正则达人解答

需求是这样的,input输入框只能输入数字和小数,开头不能是点和零,小数最多只能输入两位,谢谢!!

阅读 1.3k
2 个回答
<input id="input">
var reg = /^[1-9]\d*(\.\d{0,2})?$|^0(\.\d{0,2})?$|^-([1-9]{1}\d*(\.\d{0,2})?)?$|^-(0(\.\d{0,2})?)?$/;

var input = document.getElementById('input');

var oldValue = '';
input.addEventListener('input',function(){
  console.log(input.value)
    if(input.value && !reg.test(input.value)){
      input.value = oldValue;
    }  
  oldValue = input.value;
});

input.addEventListener('change',function(){
   if(input.value.endsWith('.') || input.value.endsWith('-')){
     input.value = input.value.slice(0,-1);
   }
});

https://codepen.io/randyou/pe...

推荐问题