如何限制输入类型为“数字”的十进制值输入

时间:2019-09-02 08:51:37

标签: javascript jquery html regex

我很难将输入字符限制为整数。有没有一种方法可以限制小数或浮点数不能输入到输入类型=“ number”中?

我还尝试了以下方法,只要触发.的事件就将''替换为keyup

$("#myForm").on('submit', function(e) {
  e.preventDefault();
});

$("#number").on('keyup', function() {
  var regex = new RegExp(/\d+\.\d?/g);
  var number = $(this).val();
  if (regex.test(number)) {
    number = number.replace(/\./g, '');
    $(this).val(number);
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="myForm" action="//google.de">
  <p>Input type number step 1</p>
  <input type="number" name="number" id="number" step="1" min="0"/>
  <input type="submit" />
</form>

使用上面的代码,结果如下:

WORKS:
2.3

FAILS:
2..3
2….3
2.3.3.3.3.3.3.3.3.3.3.333...3

我只需要允许2(任何整数),并且在所有其他情况下(包括复制和粘贴),应删除小数点。

所以我的最后一个问题是,如何限制使用type="number"在输入字段中输入浮点数?如果那不可能,那么如何更改上面的代码以满足我的要求?

编辑:

如果该问题与另一个问题部分匹配,请不要关闭此问题。我也在这里写了代码。我想知道,这是怎么回事。

0 个答案:

没有答案