生年月日入力フィールドの値を確認する必要があります。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})$";