可验证- / 分隔日期是否正确,包涵闰年验证 ^((//d{2}(([02468][048])|([13579][26]))[//-/s]?((((0?[13578])|(1[02]))[//-/s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[//-/s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[//-/s]?((0?[1-9])|([1-2][0-9])))))|(//d{2}(([02468][1235679])|([13579][01345789]))[//-/s]?((((0?[13578])|(1[02]))[//-/s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[//-/s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[//-/s]?((0?[1-9])|(1[0-9])|(2[0-8])))))) 参考Java代码 public static boolean isDate(String checkValue) { StringBuilder stringBuilder = new StringBuilder() .append("^((//d{2}(([02468][048])|([13579][26]))") .append("[//-/s]?((((0?[13578])|(1[02]))") .append("[//-/s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[//-/s]") .append("?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[//-/s]") .append("?((0?[1-9])|([1-2][0-9])))))|(//d{2}(([02468][1235679])|([13579][01345789]))") .append("[//-/s]?((((0?[13578])|(1[02]))") .append("[//-/s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[//-/s]") .append("?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[//-/s]") .append("?((0?[1-9])|(1[0-9])|(2[0-8]))))))"); Pattern pattern = Pattern.compile(stringBuilder.toString()); Matcher matcher = pattern.matcher(checkValue); return matcher.matches(); }