嘿伙计们,所以我以 mm/dd/yyyy 格式检查用户输入日期的项目有效,但现在我需要修改它,以便它拒绝任何数字以外的内容。例如,如果我输入 12/5/abcd 或 aa/12/2014,它应该会给我一个错误。目前,如果我在程序中输入字符或字母,它会给出一个错误,说"您应该只输入有效的整数"。我正在使用"/"的分隔符来分隔月份和日期,并在年底使用 \r 或输入/返回以完成用户输入。
只有整数检查不起作用(假设有人输入了30-02-2013
您需要专门验证日期,您应该将SimpleDateFormat
与setLenient(false)
一起使用
在我看来,使用 Java 正则表达式来验证下面的正则表达式的输入日期。
([0-9]{2})\([0-9]{2})\([0-9]{4})
如果您只关心数字与非数字,则可以使用简单的正则表达式进行验证。
import java.util.regex.*;
public class A{
public static void main(String[] args) {
String original = "12/24/1014";
Pattern mypattern = Pattern.compile("\d{2}/\d{2}/\d{4}");
System.out.println(mypattern.matcher(original).matches());
// If not true, throw error.
}
}
您可以使用下面的日期。
SimpleDateFormat sdf = new SimpleDateFormat("mm/dd/yyyy");
boolean isValidDate(string input) {
try {
format.parse(input);
return true;
}
catch(ParseException e){
return false;
}
}
只需放置一个 if 条件即可检查 dd、mm 和 yy 上的整数实例。喜欢
if(x instanceof Integer){
...
}