所以在我的注册表格中我有这个字段:
<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]/
}
}
});
我认为模式是错误的,但我不确定使用是否正确。 谢谢你的帮助。
答案 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]+.*))
});