我正在尝试编写一个验证日期的正则表达式.正则表达式需要匹配以下内容
到目前为止我有
^(([1-9]|1[012])[-/.]([1-9]|[12][0-9]|3[01])[-/.](19|20)\d\d)|((1[012]|0[1-9])(3[01]|2\d|1\d|0[1-9])(19|20)\d\d)|((1[012]|0[1-9])[-/.](3[01]|2\d|1\d|0[1-9])[-/.](19|20)\d\d)$
Run Code Online (Sandbox Code Playgroud)
这恰当匹配除了它还包括2/30/2008和2/31/2008.
有人有更好的建议吗?
编辑:我在RegExLib上找到了答案
^((((0[13578])|([13578])|(1[02]))[\/](([1-9])|([0-2][0-9])|(3[01])))|(((0[469])|([469])|(11))[\/](([1-9])|([0-2][0-9])|(30)))|((2|02)[\/](([1-9])|([0-2][0-9]))))[\/]\d{4}$|^\d{4}$
Run Code Online (Sandbox Code Playgroud)
它匹配遵循MM/DD/YYYY格式的所有有效月份.
谢谢大家的帮助.
例如: 2015-01-17T18:23:02+00:00
由于字符串的某些组成部分被认为是"有效",因此在使用正则表达式时会遇到一些问题,因此可能不需要.
此外,字符串可以格式化为:2015-01-17T18:23:02Z轻微抛弃我
先谢谢你们.