我有自定义正则表达式方法:
$.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})$'
},...
答案 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);
}