【发布时间】:2014-01-27 13:00:34
【问题描述】:
我正在使用 jQuery 验证器插件,我需要在特定字段上应用自定义验证。
我需要验证的是它以 J 开头必须后跟 1 到 999 之间的 1-3 位数字。
有效的正则表达式:J1、J10、J599
无效的正则表达式:H1、H10、H599
我想出了这个正则表达式,但它失败了。我收到一条提示“失败”的警报:
/^[J]{1}\d{1,3}$/
我是这样测试的:
if($('#bin').valid()) {
//passed
}
else {
alert('failed');
}
我还加了一条规则:
$("#bin").rules("add", {
regexp: /^[J]{1}\d{1,3}$/,
required: true
});
并尝试了这 3 个 addMethod() 中的每一个,但我仍然无法让它工作
//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.');
【问题讨论】:
-
您的代码包含:*/
-
那是因为它不起作用。事实上,它们都不起作用
-
你能编辑你的代码吗,你能给jsfiddle吗?
-
失败的是正则表达式而不是代码。刚试过这个 /^[a-z]{1,10}$/ 并放入 adrock 就通过了
标签: jquery regex validation