JavaScript 只允许数字和特定长度,不允许句点

标签 javascript html webforms

我需要一段 JavaScript 方面的帮助。我有这段代码:

<script>
function FilterInput(event) {
    var keyCode = ('which' in event) ? event.which : event.keyCode;
    isNotWanted = (keyCode == 69);
    return !isNotWanted;
};
function handlePaste(e) {
    var clipboardData, pastedData;
    clipboardData = e.clipboardData || window.clipboardData;
    pastedData = clipboardData.getData('Text').toUpperCase();
    if (pastedData.indexOf('E') > -1) {
        e.stopPropagation();
        e.preventDefault();
    }
};
</script>

我想将用户的输入限制为仅 5 位数字。例如,对于这个输入框,我希望允许的数字不超过五个(例如 12345)并且没有句号:

<div class="col-md-3">
  <div class="form-group">
    <label>Customer Number</label>
    <div class="input-group">
      <span class="input-group-addon"><i class="fa fa-hashtag"></i></span>
      <input name="CustomerNumber" type="number" class="form-control" onkeydown="return FilterInput(event)" onpaste="handlePaste(event)" required>
    </div>
  </div>
  <!-- /.form-group -->
</div>
<!-- /.col -->

我将如何实现这一目标?我知道

type="text" 

它允许使用“maxlength”来限制空间。

最佳答案

一种方法是捕获输入,检查它是否通过了验证检查,如果是,则继续,如果没有,将其设置为最后一个已知的正确值,如下所示:

var oldValue = "";
// listen for "input" event, since that handles all keypresses as well as cut/paste
document.getElementById("myInput").addEventListener('input', function (event) {
  var input = event.target;
  if (validateInput(input.value)) {
    // update old value with new value
    oldValue = input.value;
  }
  else {
    // set value to last known valid value
    input.value = oldValue;
  }
});

function validateInput(str) {
  // check length, if is a number, if is whole number, if no periods
  return /^[0-9]{0,5}$/.test(str);
}
Test: <input type="text" id="myInput"/><br/>
Try typing/pasting invalid input

关于JavaScript 只允许数字和特定长度,不允许句点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51504819/

相关文章:

javascript - 如何激活当前选项卡

javascript - 将 <a> 标记的 href 值链接到另一个 html 页面

C# 代码隐藏与 CSS 冲突

c# - 多 View 刷新页面并丢失 ASP.NET Webform 中的数据

asp.net - 在带有母版页的网络表单中使用 dropzone.js

javascript - 缩放以适合, Canvas ,javascript

javascript - ES8 使用带有异步和等待的箭头函数

javascript - Firebase 谷歌云函数 : createReadStream results in empty file

php - DOMDocument 添加属性到根标签

javascript - 移动 Sprite