ZH
我的工具

日期正则表达式生成器与测试器(YYYY-MM-DD、MM/DD/YYYY、ISO 8601)

生成 YYYY-MM-DD、MM/DD/YYYY、DD.MM.YYYY、ISO 8601 日期与时间的正则表达式,考虑每月天数和闰年,并提供 JS、PHP、Python、Java、.NET 代码。

正则表达式
JavaScript
代码
匹配数
3
不匹配
5

这里使用 [0-9] 而不是 \d,因为在 Python、.NET 和部分 Java 模式中,\d 还会匹配阿拉伯-印度数字等其他文字的数字。

(?=…) 先行断言会先检查整个值,然后由命名分组取出各个部分。先行断言在这五种语言中都能使用。

闰年遵循格里高利历规则:2000 年和 2024 年有 2 月 29 日,1900 年和 2023 年没有。

测试结果
行值结果组成部分或原因
12024-02-29匹配year=2024, month=02, day=29
22023-02-29不匹配2023 年不是闰年
32026-04-31不匹配04 月只有 30 天
42026-12-01匹配year=2026, month=12, day=01
51900-02-29不匹配1900 年不是闰年
62000-02-29匹配year=2000, month=02, day=29
72026-13-01不匹配不存在 13 月
826-01-01不匹配年份必须是四位数字
该表达式检查的内容
部分规则
year四位数字;2 月 29 日的闰年规则:能被 4 整除,但整百年份必须能被 400 整除
month01–12
day按月份最多 31、30 或 28/29
我的工具 →
广告

日期正则首先要决定检查到多严格:\d{4}-\d{2}-\d{2} 会放过 2026-19-45,而了解每月天数和闰年的表达式会拒绝 2023-02-29、接受 2024-02-29。这个生成器会按你使用的格式(ISO 8601、美式、欧式、韩式或紧凑日期,RFC 3339 日期时间,或时间)和你选择的严格程度写出表达式,附带命名分组以及 JavaScript、PHP、Python、Java 和 C# 的现成代码,并用你的值进行测试。

使用方法

  1. 选择日期或时间的格式。
  2. 选择表达式的严格程度;“真实日期”会考虑闰年。
  3. 选择语言,以及是校验整个值还是在文本中查找日期。
  4. 粘贴测试值,查看哪些匹配,以及其余的为什么不匹配。

计算公式

闰年 = 能被 4 整除,但整百年份必须能被 400 整除 → (?:\d\d(?:0[48]|[2468][048]|[13579][26])|(?:0[048]|[2468][048]|[13579][26])00)

“真实日期”由三组月份构成:有 31 天的月份(01、03、05、07、08、10、12)、有 30 天的月份(04、06、09、11),以及最多 28 天的 2 月,另外为闰年的 2 月 29 日单独设一个分支。使用命名分组时,会先由先行断言 (?=…) 检查整个值,再由分组拆成年、月、日。表达式使用 [0-9] 而不是 \d,因此在所有语言中都只匹配 ASCII 数字。校验用的代码采用整串匹配(test 配合 ^…$、fullmatch、matches、\z),所以结尾多出的换行不会被接受。

示例

选择 YYYY-MM-DD 和“真实日期”时,示例列表有 3 个匹配:2024-02-29(2024 是闰年)、2026-12-01 和 2000-02-29(2000 能被 400 整除)。2023-02-29 不匹配是因为 2023 不是闰年,2026-04-31 是因为 4 月只有 30 天,1900-02-29 是因为 1900 是不能被 400 整除的整百年份,2026-13-01 是因为没有 13 月,26-01-01 是因为年份需要四位数字。

常见问题

到底该不该用正则来校验日期?

正则适合检查格式,以及在表单或日志中做快速检查。对于重要场景,还应该用所用语言的日期库来解析日期,它了解时区和历法规则。

为什么不用 \d?

在 Python 3、.NET 以及带 Unicode 标志的 Java 中,\d 还会匹配 ٣ 或 ३ 这样的其他文字的数字,而 [0-9] 只匹配 0–9。

能用于句子里的日期吗?

可以,选择“在文本中查找日期”。此时表达式不会在更长的数字内部匹配,所以 12026-01-01 不会被识别成 2026-01-01。

资料来源

最后更新:

引用此工具
APA

kakaoCalc. (2026, November 8). 日期正则表达式生成器与测试器(YYYY-MM-DD、MM/DD/YYYY、ISO 8601). https://kakao.mobile/zh/tools/date-regex-tool/

MLA

“日期正则表达式生成器与测试器(YYYY-MM-DD、MM/DD/YYYY、ISO 8601).” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/date-regex-tool/.

广告