日期正则表达式 — 将 YYYY-MM-DD 与组匹配
实时调试 JavaScript 正则表达式:突出显示的匹配项、捕获组、标志和替换预览。
处理中...
0%
结果
此页面预加载 ISO 8601 日期的模式:(?<year>\d{4})-(?<month>0[1-9]|1[0-2])-(?<day>0[1-9]|[12]\d|3[01])。月份组不接受任何数字,只允许 01–12 和日期组 01–31 — 示例文本通过 2026-13-01 和 2026-00-10 演示了这一点,它们保持不匹配。
这三个命名组是实际的回报:在文本下方的匹配列表中,您可以看到为找到的每个日期分别提取的年、月和日。在代码中,相同的组允许您编写 result.groups.year 而不是计算括号 - 并且在此处的替换字段中,您可以将日期重新排序为 $<day>.$<month>.$<year> 一次性将 ISO 日期转换为欧洲表示法。
正则表达式无法知道 2 月有 28 天 - 2026-02-31 仍然会匹配。这是正常的:该模式的工作是找到日期形状的字符串并将它们分成几部分;最终的日历验证属于您的代码。粘贴您自己的日志或 CSV 导出,并查看该模式在真实数据上的表现。