jQuery验证 - 密码必须包含大写和数字

时间:2017-03-20 12:00:17

标签: javascript jquery validation

所以在我的注册表格中我有这个字段:

 <div class="form-group">
    <label for="RegisterModel_Password">Password</label>
    <input type="password" id="RegisterModel_Password" 
           name="RegisterModel.Password" class="form-control" 
           required="required" minlength="8"/>
</div>

如您所见,我正在使用jQuery验证属性来确保密码至少包含8个字符。所以,我想检查密码是否包含大写和数字,如果没有,则字段无效。我下载了名为“pattern”的jQuery Validation插件的附加方法,并将她添加到head标签中。

我尝试按照以下方式执行此操作,但它没有奏效。

$("#formRegister").validate({
    rules: {
        RegisterModel_Password: {
            pattern: /^[a-zA-Z][0-9]/
        }
    }
});

我认为模式是错误的,但我不确定使用是否正确。 谢谢你的帮助。

2 个答案:

答案 0 :(得分:6)

正则表达链对我来说太难了(我从来没有试过去学习它们)。所以这是我的解决方案:

jQuery.validator.addMethod("passwordCheck",
        function(value, element, param) {
            if (this.optional(element)) {
                return true;
            } else if (!/[A-Z]/.test(value)) {
                return false;
            } else if (!/[a-z]/.test(value)) {
                return false;
            } else if (!/[0-9]/.test(value)) {
                return false;
            }

            return true;
        },
        "error msg here");

我只是像使用属性一样使用它:

<input type="password" id="RegisterModel_Password" 
name="RegisterModel.Password" 
class="form-control" 
required="required" minlength="8" 
passwordCheck="passwordCheck"/>

感谢您的回答。

答案 1 :(得分:0)

您可以使用$.validator.addMethod()添加自定义验证,例如:

$.validator.addMethod("validation_name", function(value) {
    // at least 1 number and at least 1 character
    [^\w\d]*(([0-9]+.*[A-Za-z]+.*)|[A-Za-z]+.*([0-9]+.*))
});