写一个正则表达式 校验 "yyyy/MM/dd"与"yyyy-MM-dd" 两种日期格式的字符串
时间: 2023-07-21 10:04:24 浏览: 202
匹配yyyy-mm-dd日期格式的的正则表达式
可以使用以下正则表达式:
```
^(19|20)\d{2}([-/])(0[1-9]|1[012])\2(0[1-9]|[12][0-9]|3[01])$
```
解释如下:
- `^` 表示匹配字符串的开始位置
- `(19|20)\d{2}` 匹配以 19 或 20 开头的四位数年份
- `([-/])` 匹配日期分隔符,可以是 - 或 /
- `(0[1-9]|1[012])` 匹配月份,可以是 01 到 12
- `\2` 表示引用前面匹配的分隔符,确保分隔符一致
- `(0[1-9]|[12][0-9]|3[01])` 匹配日期,可以是 01 到 31
- `$` 表示匹配字符串的结束位置
这个正则表达式可以匹配如下格式的日期字符串:
- 2022/01/01
- 2022-01-01
- 2000/12/31
- 1999-02-28
但是它无法检查日期是否合法,比如 2022/02/31 这样的无效日期也会被匹配。如果需要检查日期的合法性,需要在代码中进行额外的判断。
阅读全文