jQuery验证程序自定义正则表达式失败
我正在使用jqueryvalidator插件,需要对特定字段应用自定义验证 我需要验证的是,它以J开头,后面必须跟1到999之间的1-3位数字 有效正则表达式:J1、J10、J599 无效的正则表达式:H1、H10、H599 我已经想出了这个正则表达式,但它失败了。我收到一个警告说“失败”:jQuery验证程序自定义正则表达式失败,jquery,regex,validation,Jquery,Regex,Validation,我正在使用jqueryvalidator插件,需要对特定字段应用自定义验证 我需要验证的是,它以J开头,后面必须跟1到999之间的1-3位数字 有效正则表达式:J1、J10、J599 无效的正则表达式:H1、H10、H599 我已经想出了这个正则表达式,但它失败了。我收到一个警告说“失败”: /^[J]{1}\d{1,3}$/ 我这样测试它: if($('#bin').valid()) { //passed } else { alert('failed'); } 我还添加了一
/^[J]{1}\d{1,3}$/
我这样测试它:
if($('#bin').valid()) {
//passed
}
else {
alert('failed');
}
我还添加了一条规则:
$("#bin").rules("add", {
regexp: /^[J]{1}\d{1,3}$/,
required: true
});
我尝试了这3种方法,但仍然无法使其发挥作用
//this fails validation
$.validator.addMethod(
"bin",
function(value, element, regexp) {
var re = new RegExp(regexp);
return this.optional(element) || re.test(value);
},
"Please scan/enter a valid bin number."
);
//this fails validation
$.validator.addMethod("regexp", function(value, element, regexpr) {
return regexpr.test(value);
}, "Please scan/enter a valid bin number.");
//this fails validation
$.validator.addMethod('regexp', function(value, element, param) {
return this.optional(element) || value.match(param);
},'Please scan/enter a valid bin number.');
找到导致问题的原因 就像我想象的那样,是正则表达式 改变
$("#bin").rules("add", {
regexp: /^[J]{1}\d{1,3}$/,
required: true
});
到
您的代码包含:*/这是因为它不起作用。事实上,它们都不起作用。你能编辑你的代码吗?你能给JSFIDLE吗?失败的是正则表达式,而不是代码。只需尝试这个/^[a-z]{1,10}$/并放入adrock,它就通过了| 999部分,它使正则表达式与999匹配。而且,{1}是无用的。
$("#bin").rules("add", {
regexp: /^([jJ]{1}[1-9][0-9]{0,2}|999)$/,
required: true }
);