我尝试编写一个验证日期的正则表达式
到目前为止
^(([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)$
除了它仍然包括2008年2月30日和2008年2月31日之外,这个匹配是正确的。
有人有更好的建议吗?
编辑: 我在 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}$
它匹配遵循 MM/DD/YYYY 格式的所有有效月份。
谢谢大家的帮助。