【发布时间】:2017-01-13 15:10:14
【问题描述】:
以下代码与 Jquery Validate 一起用于检查表单上的出生日期。它多年来一直运行良好,在 2016/17 年初失败了,但仅在 IE 和 Chrome 中,Firefox 很好。
经过一番调查,我可以使用 18 作为年龄,而不是 17两位数的年份。 2000 年 1 月 1 日的日期无效。传入的日期是 DD/MM/YYYY。
我不知道如何强制使用四位数的年份来确保无论如何都能正常工作,并且不会在 18 年后的下一年倒下。
> $.validator.addMethod("ValidDOB17", function (value, element) {
// checking whether the date entered is in correct format
var isValid = value.match(/^\d\d?\/\d\d?\/\d\d\d\d$/);
if (isValid) {
var today = new Date();
var minyear = new Date();
today.setYear(today.getYear() - 17);
minyear.setYear(today.getYear() - 82);
var DOB = Date.parse(value);
if (DOB >= today || DOB <= minyear ) {
isValid = false;
}
return isValid;
}
}, "You must be aged over 17");
【问题讨论】:
-
使用
.getFullYear()而不是.getYear()
标签: javascript jquery date jquery-validate