This question already has answers here:
Regex accept numeric only. First character can't be 0
                                
                                    (4个答案)
                                
                        
                2年前关闭。
            
        

我正在尝试制作一个仅允许具有任意数字位数且不以0开头的数字的函数,但是此验证无法正常工作,因为当我要粘贴和放置输入时,它第一次失败但是下一次,行得通!

jQuery(document).on('input', '.validatenumber', function () {
  let start = this.selectionStart, end = this.selectionEnd;
  let oldtxt = $(this);
  let find = /[^0-9]/g;
  if (oldtxt.val().match(find)) {
    oldtxt.val(oldtxt.val().replace(find, ''));
    this.setSelectionRange(start - 1, end - 1);
  }
  else {
    if (oldtxt.val() < 1) {
      oldtxt.val(oldtxt.val().replace(oldtxt.val(), ''));
    } else {
     oldtxt.val(oldtxt.val() / 1);
      this.setSelectionRange(start, end);
   }
  }
});


为什么仅当我输入有效但粘贴或放下却无效?

最佳答案

您可以使用此RegEx

^[1-9][0-9]*$


作为说明,请检查此图像

javascript - 该函数仅允许整数不以零开头的onInput事件-LMLPHP

07-28 03:13