我有一个对keydown事件起作用的函数,我希望它只允许数字,退格键和1个点。我不能使它工作。这是我尝试过的:

$('#input[type="number"]').keydown(function(e) {

            this.value = this.value.toLowerCase();
            var regex = new RegExp("^[0-9.,\b]+$");
            var key = String.fromCharCode(!e.charCode ? e.which : e.charCode);
            if (!regex.test(key)) {
                console.log('stop now')
                e.preventDefault();
                return false;
            }
});


它仍然防止点,但允许数字。我认为我的Regex错误,需要进行调整。

注释不见了,但是一些用户建议这可能与.,的转义有关?有任何想法吗?

最佳答案

您可以使用它而不是使用正则表达式。我想这对你有帮助

  

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <script type="text/javascript" language="jscript">
      function fncInputNumericValuesOnly() {
          if (!(event.keyCode == 32 || event.keyCode == 46 || event.keyCode == 48 || event.keyCode == 49 || event.keyCode == 50 || event.keyCode == 51 || event.keyCode == 52 || event.keyCode == 53 || event.keyCode == 54 || event.keyCode == 55 || event.keyCode == 56 || event.keyCode == 57))
          {
              event.returnValue = false;
          }
      }
</script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:TextBox ID="txtEmpName" onkeypress="fncInputNumericValuesOnly()" runat="server"></asp:TextBox>
    </div>
    </form>

</body>
</html>

关于javascript - 正则表达式-允许数字0-9,Backspace和1点Javascript,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34156233/

10-11 06:02