关于javascript:验证出生日期注册日历

Validating Date of birth signup calendar

我需要在我的注册表格中确认我的出生日期,有效日期不得在将来,并且没有不存在的日期,例如5月31日是否有一种简单的方法可以在没有每个月编码的情况下执行此操作?


将Javascript与html5验证模式结合使用:

1
2
<input type="text" pattern="(0[1-9]|1[0-9]|2[0-9]|3[01])/(0[1-9]|1[012])/[0-9]{4}"
 onchange="this.className = Date.parse(this.value) < Date.now() && 'valid'">

在这里找到更多模式:
http://html5pattern.com/Dates

如果有人


如果你想手动执行此操作..此代码应该足够了(我很确定该模式支持dd/mm/yyyy)。

1
2
3
4
5
6
7
8
9
10
11
12
function checkDateTime(newDate) {
    var pattern = '^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$';
    var regex = new RegEx(pattern);

    if (typeof newDate === 'string' && newDate.trim().match(regex)) {
        var parsedDate = new Date(newDate);
        var today = new Date();
        if (parsedDate.getTime() >= today.getTime()) {
            //The date is valid...
        }
    }
}
  • 使用javascript和regex验证日期时间
  • 检查字符串是否为日期值
  • 你如何获得JavaScript的时间戳?
  • 正则表达式验证日期格式dd / mm / yyyy


如果您使用的是jQuery datepicker,则可以使用以下代码:

1
2
3
4
5
6
7
$("#born_date").datepicker({
    changeYear: true,
    changeMonth: true,
    maxDate: '+0d',
    yearRange: '-90:+0',
    numberOfMonths: 1
});

最好的祝福!