帮我写一个判断日期的正则表达式
时间: 2023-07-07 18:14:32 浏览: 47
以下是一个判断日期的正则表达式:
```
^(19|20)\d{2}[-/.](((0[13578]|1[02])[-/.](0[1-9]|[12]\d|3[01]))|((0[469]|11)[-/.](0[1-9]|[12]\d|30))|(02[-/.](0[1-9]|1\d|2[0-8])))$
```
这个正则表达式可以匹配以"-"、"."或"/"分隔的形如“YYYY-MM-DD”、“YYYY/MM/DD”或“YYYY.MM.DD”格式的日期,其中YYYY表示年份,MM表示月份,DD表示日期。这个正则表达式的具体含义如下:
- ^: 匹配字符串的开头
- (19|20)\d{2}:匹配以19或20开头的4位年份
- [-/.]:匹配“-”、“.”或“/”中的一个
- (((0[13578]|1[02])[-/.](0[1-9]|[12]\d|3[01]))|((0[469]|11)[-/.](0[1-9]|[12]\d|30))|(02[-/.](0[1-9]|1\d|2[0-8]))):匹配月份和日期,其中:
- (0[13578]|1[02])表示1月、3月、5月、7月、8月、10月或12月
- (0[469]|11)表示4月、6月、9月或11月
- 02表示2月
- (0[1-9]|[12]\d|3[01])表示1到31日
- (0[1-9]|[12]\d|30)表示1到30日
- (0[1-9]|1\d|2[0-8])表示1到28日
- $:匹配字符串的结尾
注意,这个正则表达式只能用于初步判断日期格式是否合法,不能判断日期是否真实存在。