我正在尝试验证 yyyy-dd-mm 中的日期格式。我正在通过下面的验证器 matod 尝试这个。它使用/^(\d{4})(-)(\d{1,2})(-)(\d{1,2})$/
正则表达式验证日期。当我尝试使用/^((?:19|20)\d\d)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$/
它进行验证时,它工作错误。
jQuery.validator.addMethod(
"validateDateFormat",
function(value, element) {
var currVal = value;
if (currVal != '') {
var rxDatePattern = /^(\d{4})(-)(\d{1,2})(-)(\d{1,2})$/;
//var rxDatePattern = /^((?:19|20)\d\d)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$/;
var dtArray = currVal.match(rxDatePattern);
if (dtArray == null){
return false;
}
dtYear = dtArray[1];
dtMonth= dtArray[3];
dtDay = dtArray[5];
if (dtMonth < 1 || dtMonth > 12)
return false;
else if (dtDay < 1 || dtDay > 31)
return false;
else if ((dtMonth == 4 || dtMonth == 6 || dtMonth == 9 || dtMonth == 11) && dtDay == 31)
return false;
else if (dtMonth == 2)
{
var isleap = (dtYear % 4 == 0 && (dtYear % 100 != 0 || dtYear % 400 == 0));
if (dtDay > 29 || (dtDay == 29 && !isleap))
return false;
}
}
return true;
},
"Please enter a valid date, date format should be (yyyy-mm-dd)."
);
我在这里要验证的内容:
- 只允许使用 int 和“-”。
- 日期只能采用 YYYY-MM-DD 格式。
- YYYY 应该大于 1900 并且应该是 4 int。
- MM 应该在 01 到 12 之间,并且应该是 2 个字符。
- DD 应该在 01 到 31 之间,并且应该是 2 个字符。