WEB 教程
实践 示例
HTML 参考手册
CSS 参考手册
PHP 参考手册

如何使用 jQuery 在 HTML 文本输入中只允许数字值

主题:JavaScript / jQuery上一页|下一页

答案:使用正则表达式test()方法

如果您希望您的用户在 HTML 文本输入字段中只输入数值,您可以创建一个正则表达式并使用 test() 方法测试输入值。

让我们尝试以下示例,如果输入的值不是整数或浮点数,则将红色轮廓应用于文本输入框,否则应用绿色轮廓:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery Allow Only Numeric Input in HTML Text Input Field</title>
<style>
    .success{
        outline: 2px solid green;
    }
    .error{
        outline: 2px solid red;
    }
</style>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
$(document).ready(function(){
    // 定义正则表达式
    var regex = /^\d*[.]?\d*$/;
    
    $("#myInput").on("input", function(){
        // 获取输入值
        var inputVal = $(this).val();
        
        // 根据正则表达式测试输入值
        if(regex.test(inputVal)){
            $(this).removeClass("error").addClass("success");
        } else{
            $(this).removeClass("success").addClass("error");
        }
    });
});
</script>
</head>
<body>
    <input type="text" id="myInput">
    <p><strong>Note:</strong> This HTML text input only allow numeric keystrokes and decimal ('.')</p>
</body>
</html>

请注意,input 事件会在键盘输入、鼠标拖动、自动填充甚至复制粘贴时触发。 但是,如果您粘贴相同的字符串或在输入中选择并重新键入相同的字符,它不会触发。

如果您只想在 HTML 文本输入中允许数字字符 (0-9),请使用正则表达式 /^\d*$/。 在上面的示例中,如果您还想允许负值,您可以使用正则表达式 /^-?\d*[.]?\d*$/


FAQ 相关问题解答

以下是与此主题相关的更多常见问题解答:

Advertisements