将正则表达式添加到jquery.validate

12

我需要在我的jquery.validate脚本中添加一个正则表达式检查。

我现在已经有以下脚本:

$().ready(function() {
  $("#myBlahForm").validate({

    rules: {
        someName: {
            required: true,
            minlength: 5,
            maxlength: 8,
        },
        somePassword: {
            required: true,
                            minlength: 5,
            maxlength: 8,
        },
        someConfirmPassword: {
            required: true,
            equalTo: "#somePassword"
        },
    },
    messages: {
        someName:  {
            required: "Please create your username",
        },
        somePassword: {
            required: "Please create a password",
        },
        someConfirmPassword: {
            required: "Please re-enter your password",
            equalTo:  "Passwords must match"
        },
    }
});

我希望检查在此用户输入其数据时,数据库允许的特定密码字符:

});

    <label for="someName">Username</label>
    <input type="text" id="someName" name="someName" placeholder="Create a Username"/>

    <label for="somePassword">Password</label>
    <input type="password" id="somePassword" name="somePassword" placeholder="Create a Password"/>

    <label for="someConfirmPassword">Confirm Password </label>
    <input type="password" id="someConfirmPassword" name="someConfirmPassword" placeholder="Verify your Password"/>

如何使用jquery.validate插件(来自bassisstance的文档)向必填字段(如密码或用户名)添加正则表达式检查的最佳方法是什么?

基本上,我需要确保他们创建的密码和用户名只包含0-9、字母和一些特殊字符。


1
可能是重复的问题:[jQuery验证:如何添加一个正则表达式验证规则?](https://dev59.com/-3VC5IYBdhLWcg3weBA-) - ABMagil
2个回答

32

好的,你可以使用addMethod添加自定义验证方法,例如:

$.validator.addMethod("regx", function(value, element, regexpr) {          
    return regexpr.test(value);
}, "Please enter a valid pasword.");

还有,

...
$("#myBlahForm").validate({

    rules: {
        somePassword: {
            required: true ,
            //change regexp to suit your needs
            regx: /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])\w{6,}$/,
            minlength: 5,
            maxlength: 8
        }
    }

4
required: function(element){
    return /[a-zA-Z0-9]/.test($('#someConfirmPassword').val());
}

上述表达式将在正则表达式通过时返回true,在未通过时返回false。根据您的需要进行更改。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接