无法使用jQuery验证来使用MM / DD / YYYY

时间:2013-08-06 20:32:36

标签: regex jquery-validate

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

$.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"
    }   
}

当我输入有效日期时,例如08/06/2013,"日期必须采用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})$' 
      },...

1 个答案:

答案 0 :(得分:3)

我猜这个插件不需要正则表达式的字符串。而不是字符串文字,放一个regex literal

…,
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);
}