Regular Expressions 匹配日期
示例
您应该记住,正则表达式是为匹配日期(或不匹配)而设计的。说一个日期是有效的,这是一个复杂得多的工作,因为它将需要大量的异常处理(请参阅leap年条件)。
让我们首先将月份(1-12)与可选的前导0相匹配:
0?[1-9]|1[0-2]
要匹配日期,还可以选择带前导0:
0?[1-9]|[12][0-9]|3[01]
并匹配年份(假设范围1900-2999):
(?:19|20)[0-9]{2}分隔符可以是空格,破折号,斜杠,空白等。可以随意添加任何您感觉可以用作分隔符的内容:
[-\\/ ]?
现在,您将整个事情串联起来并得到:
(0?[1-9]|1[0-2])[-\\/ ]?(0?[1-9]|[12][0-9]|3[01])[-/ ]?(?:19|20)[0-9]{2} //MMDDYYYY
(0?[1-9]|[12][0-9]|3[01])[-\\/ ]?(0?[1-9]|1[0-2])[-/ ]?(?:19|20)[0-9]{2} //DDMMYYYY
(?:19|20)[0-9]{2}[-\\/ ]?(0?[1-9]|1[0-2])[-/ ]?(0?[1-9]|[12][0-9]|3[01]) //YYYYMMDD如果您想变得学究一些,可以使用向后引用以确保两个分隔符相同:
(0?[1-9]|1[0-2])([-\\/ ]?)(0?[1-9]|[12][0-9]|3[01])\2(?:19|20)[0-9]{2} //MMDDYYYY
^ refer to [-/ ]
(0?[1-9]|[12][0-9]|3[01])([-\\/ ]?)(0?[1-9]|1[0-2])\2(?:19|20)[0-9]{2} //DDMMYYYY
(?:19|20)[0-9]{2}([-\\/ ]?)(0?[1-9]|1[0-2])\2(0?[1-9]|[12][0-9]|3[01]) //YYYYMMDD
热门推荐
10 儿子立冬祝福语简短独特
11 对当兵的祝福语简短
12 侄儿高考试祝福语简短
13 伴郎红包祝福语朋友简短
14 媳妇生日简短祝福语朋友
15 公司年会祝福语简短最好
16 元旦感恩祝福语简短大全
17 红包祝福语简短10字
18 周六早晨祝福语简短