需要在我的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"/>
使用来自bassisstance的jquery.validate插件将正则表达式检查添加到必填字段(如密码或用户名)的最佳方法是什么:http://docs.jquery.com/Plugins/Validation
基本上,我需要确保他们创建的密码和用户名只有0-9,字母和几个特殊字符。
答案 0 :(得分:29)
好吧,您可以使用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
}
}
答案 1 :(得分:3)
required: function(element){
return /[a-zA-Z0-9]/.test($('#someConfirmPassword').val());
}
如果regexp通过,则上面的表达式将返回true,否则返回false。改变它以满足您的需求。