日期正则负责格式与取值范围校验。下面这条规则校验 YYYY-MM-DD,月份 01-12、日 01-31。
默认正则
/^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/
匹配 YYYY-MM-DD 格式日期,月份 01-12、日 01-31。
日期校验分两层:格式是否正确,以及日期是否真实存在。正则擅长前者,后者需要日历逻辑。
规则用 \d{4} 匹配年份,月份限定 01-12,日限定 01-31,并用 - 分隔。
该规则不会拒绝 2026-02-31 这类“格式正确但日期不存在”的值,也不处理闰年。
2026-09-132000-01-011999-12-312026-13-012026-09-322026/09/1326-09-13Q:能拒绝 2026-02-31 吗?
不能。正则只校验 01-31 的范围。要判断日期是否真实存在,需用 Date 等日期 API。
Q:支持 2026/09/13 这种写法吗?
不支持。本规则分隔符固定为 -,如需斜杠请把 - 改为 [/\-]。
Q:如何同时校验日期与时间?
使用日期时间正则页面,它在日期后增加了 [ T] 与时间部分。
Q:年份必须是 4 位吗?
是。规则要求 4 位年份,2 位简写不匹配。