输入类型数字,只接受数字,不接受字母jQuery

input type number, accepts number only not letter jquery

本文关键字:数字 jQuery 不接受 类型 输入      更新时间:2023-09-26
$("#number").bind('keyup change click', function() {
            if ($(this).val().match(/^'d+$/)) {
            } else {
                alert("Not a number");
            }

这是我用于从用户获取仅数字输入的代码。没关系,但我的start of click遇到了一些问题;当我单击它时,即使它仍然empty,也会alert它不是一个数字,所以我添加了另一个代码:

if ($(this).val().length === 0) {
}

从代码的开头。它确实解决了空或开始单击的问题,问题是当我输入letters它不再does not alert消息时。如何解决这个问题?任何建议都值得赞赏

@Rias上面有答案,但是,你也可以执行以下操作。

$("#number").bind('keyup change click', function() {
    //Check only if the text box is not empty
    if ( $.trim($(this).val()) != "") {
        if ($(this).val().match(/^'d+$/)) {
        } else {
            alert("Not a number");
        }
    }
});

Demo@Fiddle

更新:如果要删除任何非数字字符,请尝试以下操作。

$("#number").bind('keyup change click', function() {
    if ( $.trim($(this).val()) != "") {
        if ($(this).val().match(/^'d+$/)) {
        } else {
            alert("Not a number");
            $(this).val( $(this).val().replace(/[^0-9]+/gi, "") );
        }
    }
});

将正则表达式更改为 /^'d*$/,它也将接受空字段,因为量词*接受 0 个或多个数字类型的字符'd+需要 1 个或多个数字来匹配。

$(document).ready(function() {
  $("#number").bind('keyup change click', function() {
    if ($(this).val().match(/^'d*$/)) {
    } else {
      alert("Not a number");
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="number">