如何编写可验证YYYYMMDD格式日期的正则表达式?
YYYYMMDD格式带前导零日期校验正则方案
最终可用正则
完整匹配要求的正则表达式如下:
^[0-9]{4}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])$
分段规则说明
- 年份部分:
[0-9]{4},匹配任意4位数字,和你之前使用的规则一致 - 月份部分:
(0[1-9]|1[0-2]),仅匹配带前导零的01-12范围:0[1-9]匹配01到09的月份1[0-2]匹配10到12的月份
完全过滤了1、2等不带前导零的无效单数字月份
- 日期部分:
(0[1-9]|[12][0-9]|3[01]),仅匹配带前导零的01-31范围:0[1-9]匹配01到09的日期[12][0-9]匹配10到29的日期3[01]匹配30到31的日期
- 首尾的
^和$用于限定整个输入内容必须完全符合格式,避免前后存在多余字符的内容通过校验
补充说明
该正则仅做格式和基础范围校验,无法自动处理2月闰月、部分月份仅有30天这类特殊日期合法性校验,如果需要更严格的校验,建议搭配Altova Mapforce内置的日期解析函数组合使用。
内容的提问来源于stack exchange,提问作者user9678473
相关产品推荐
相关产品推荐

