jQuery验证程序自定义正则表达式失败

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'); } 我还添加了一

我正在使用jqueryvalidator插件,需要对特定字段应用自定义验证

我需要验证的是,它以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种方法,但仍然无法使其发挥作用

//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 }
);