正则^\d{4}-\d{2}-\d{2}$匹配YYYY-MM-DD日期格式失败问题咨询
正则
^\d{4}-\d{2}-\d{2}$匹配失败排查方案 你使用的正则^\d{4}-\d{2}-\d{2}$的匹配规则如下:
^标记字符串的起始位置,要求匹配内容从字符串第一个字符就开始符合规则\d{4}要求匹配连续4位0-9的数字-要求匹配英文半角短横线\d{2}要求匹配连续2位0-9的数字$标记字符串的结束位置,要求匹配内容到字符串最后一个字符完全符合规则
你提供的两个测试用例匹配结果及排查方向如下:
2021-11-10本身完全符合格式要求,如果出现匹配失败,优先排查两个点:- 字符串首尾是否存在不可见的空白字符(空格、换行、制表符、零宽空格等),可以先对字符串做首尾去空白操作后再测试
- 字符串中的短横线是否为中文全角短横线,确认使用的是英文半角短横线
"1234-12-34"首尾带有英文双引号,属于规则外的额外字符,自然无法匹配,如果你的业务场景中日期本身就是带双引号的,需要把正则调整为^"\d{4}-\d{2}-\d{2}"$才能正常匹配。
如果你的业务场景需要同时校验日期的合法性(比如排除2023-13-40这类格式符合但实际不存在的日期),仅靠正则无法完成精准校验,建议先用正则做格式初筛,再通过编程语言自带的日期解析工具做二次校验即可。
内容的提问来源于stack exchange,提问作者heaxyh
相关产品推荐
相关产品推荐

