年月—年月日的正则表达式能否写一个正则表达式,即可以匹配年月日,又可以匹配到年月?

1个回答

  • 一般来说,条件越多的正则表达式越严格,但表述起来也越麻烦,你可以根据需要选择不同的正则表达式去判别 只检查格式: d{4}-d{2}(-d{2})? 简单的日期判定(比如说2000-02-30仍然通过判定): d{4}-(((0[1-9])|(1[0-2])))(-((0[1-9])|([1-2][0-9])|(3[0-1])))? 比较严格的日期判定(但还是没有闰年2月29的判定): d{4}-(((0(1|3|5|7|8))|(1(0|2)))(-((0[1-9])|([1-2][0-9])|(3[0-1])))?)|(((0(2|4|6|9))|(11))(-((0[1-9])|([1-2][0-9])|(30)))?)|((02)(-((0[1-9])|([1-2][0-9])))?) 严格的日期判定(包括闰年的判定): (d{4}-(((0(1|3|5|7|8))|(1(0|2)))(-((0[1-9])|([1-2][0-9])|(3[0-1])))?)|(((0(2|4|6|9))|(11))(-((0[1-9])|([1-2][0-9])|(30)))?)|((02)(-((0[1-9])|(1[0-9])|(2[0-8])))?))|(((([0-9]{2})((0[48])|([2468][048])|([13579][26]))|(((0[48])|([2468][048])|([3579][26]))00)))-02-29)