我需要在注册表格中验证我的出生日期——有效日期不能在未来,也不能有不存在的日期,例如6月31日。有没有一种简单的方法可以做到这一点,而不必为每个月编码?
如果您想手动执行此操作。。这段代码应该足够了(我确信该模式支持dd/mm/yyyy
)。
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?23(?:(?:(?:1[6-9]|[2-9]d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1d|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中获取时间戳
- Regex验证日期格式dd/mm/yyyy
如果您使用的是jQuery日期选择器,您可以使用以下代码:
$("#born_date").datepicker({
changeYear: true,
changeMonth: true,
maxDate: '+0d',
yearRange: '-90:+0',
numberOfMonths: 1
});
致以最良好的问候!
将Javascript与html5验证模式结合使用:
<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
如果有人