0

我有一个自定义的正则表达式方法:

$.validator.addMethod(
    "dateRegex",
       function(value, element, regexp) {
         var re = new RegExp(regexp);
         return this.optional(element) || re.test(value);
       },
       "Date must be in the format MM/DD/YYYY"
 );

我在日期字段上进行了 jQuery 验证,如下所示:

rules:
      date:
        {
        required: true,
        dateRegex: '^(0[1-9]|1[012])[- //.](0[1-9]|[12][0-9]|3[01])[- //.](19|20)\d\d$',
        maxlength: 10
        }
      }
messages: {
    lossDate: {
    required: "Unable to proceed, search field is empty"
    }   
}

当我输入有效日期时,例如 2013 年 8 月 6 日,会显示“日期必须采用 MM/DD/YYYY 格式”。有没有人在我的正则表达式中看到错误,或者问题不在此范围内?

测试数据通过这里: http ://regexpal.com/

此外,我的应用程序中有以下工作:

$.validator.addMethod(
    "regex",
    function(value, element, regexp) {
       var re = new RegExp(regexp);
       return this.optional(element) || re.test(value);
    },
    "Invalid number of characters entered."
);

number: 
      {
    required: true,
    regex: '^(.{7}|.{9}|.{11}|.{12}|.{15})$' 
      },...
4

1 回答 1

3

我猜这个插件不想要正则表达式的字符串。代替字符串文字,放入正则表达式文字

…,
dateRegex: /^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.](19|20)\d\d$/,
…

您还可以简化该功能:

function(value, element, regexp) {
    return this.optional(element) || regexp.test(value);
}
于 2013-08-06T20:43:08.917 回答