我需要检查我的生日输入字段的值。应该有几种可能性:dd.MM.yyyy
, dd.M.yyyy
, d.MM.yyyy
,d.m.yyyy
和dd.MM.yy
, dd.M.yy
, d.MM.yy
, d.m.yy
。例如,您可以输入 07.03.1993、7.3.93 或其他任何内容。
以下正则表达式示例仅检查格式验证,但不检查日期是否存在(例如 29.02.2011 或 47.02.2011 将被允许)
String s = (String) arg2;
String pattern = "^(\\d{2}|\\d{1})\\.(\\d{2}|\\d{1})\\.(\\d{2}|\\d{4})$";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(s);
if (m.matches()) {
System.out.println(("date correct"));
} else {
System.out.println("date incorrect");
}
编辑:我刚刚创建了以下正则表达式语句,现在它检查月份是否大于 12 并且日期是否大于 31。我想我应该先使用正则表达式,然后使用验证日期SimpleDateFormat
String s = "^((0?[1-9]|[12][0-9]|3[01])\\.(0?[1-9]|1[012])\\.((19|20)\\d{2})$";