可验证- / 分隔日期是否正确,包涵闰年验证 ^((//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(); }