Java 上的正则表达式日期格式验证
我只是想知道是否有一种方法(也许使用正则表达式)来验证Java桌面应用程序上的输入是否完全是格式化为“YYYY-MM-DD”的字符串。
我只是想知道是否有一种方法(也许使用正则表达式)来验证Java桌面应用程序上的输入是否完全是格式化为“YYYY-MM-DD”的字符串。
使用以下正则表达式:
^\d{4}-\d{2}-\d{2}$
如
if (str.matches("\\d{4}-\\d{2}-\\d{2}")) {
...
}
使用该方法,锚点和(分别是字符串的开头和结尾)隐式存在。matches
^
$
您需要的不仅仅是一个,例如“9999-99-00”不是有效日期。有一个类就是为了做到这一点而构建的。更重量级,但更全面。regex
SimpleDateFormat
例如:
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
boolean isValidDate(string input) {
try {
format.parse(input);
return true;
}
catch(ParseException e){
return false;
}
}
不幸的是,它既是重量级的,又不是线程安全的。SimpleDateFormat