使用 jquery 验证插件,如何在文本框上添加正则表达式验证?

Posted

技术标签:

【中文标题】使用 jquery 验证插件,如何在文本框上添加正则表达式验证?【英文标题】:using the jquery validation plugin, how can I add a regex validation on a textbox? 【发布时间】:2010-11-06 10:04:20 【问题描述】:

我正在使用来自 http://bassistance.de/jquery-plugins/jquery-plugin-validation/ 的 jquery 验证插件

如何在特定文本框上添加正则表达式检查?

我想检查以确保输入是字母数字。

【问题讨论】:

这里有很多额外的方法插件bassistance.de/jquery-plugins/jquery-plugin-validation 【参考方案1】:

定义一个新的验证函数,并在要验证的字段的规则中使用它:

$(function ()

    $.validator.addMethod("loginRegex", function(value, element) 
        return this.optional(element) || /^[a-z0-9\-]+$/i.test(value);
    , "Username must contain only letters, numbers, or dashes.");

    $("#signupForm").validate(
        rules: 
            "login": 
                required: true,
                loginRegex: true,
            
        ,
        messages: 
            "login": 
                required: "You must enter a login name",
                loginRegex: "Login format not valid"
            
        
    );
);

【讨论】:

注意:addmethod 不需要进入 document.ready,也可以立即加载,腾出 document.ready 用于需要进入的内容。 如果值不是字母数字则显示特定的错误消息,如果它不在最小/最大长度之间,则需要更改什么? @Cofey - 我实际上并没有验证(双关语)这是有效的,但我使用docs.jquery.com/Plugins/Validation/validate#options的文档更新了示例以使用自定义错误消息【参考方案2】:

不熟悉 jQuery 验证插件,但这样的东西应该可以解决问题:

var alNumRegex = /^([a-zA-Z0-9]+)$/; //only letters and numbers
if(alNumRegex.test($('#myTextbox').val())) 
    alert("value of myTextbox is an alphanumeric string");

【讨论】:

@karmin79:感谢优雅的解决方案。只是一件小事,您在“”之前缺少一个“)”。

以上是关于使用 jquery 验证插件,如何在文本框上添加正则表达式验证?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jquery 验证插件动态添加验证规则

jquery 验证插件:验证隐藏输入,跳过所需的输入文本

使用 IE9、jquery 插件/html 验证的占位符问题

在文本框上按下 Go 按钮时发生页面重定向(jquery/cordova)

jQuery在文本框上设置然后只读属性

jQuery 和 jVal 验证插件。向元素添加属性