Java程序-使用字符串和正则表达式验证电子邮件地址
问题陈述如下: 我们需要创建一个名为emailId的字符串数据类型 必须使用适当的setter方法设置电子邮件ID 电子邮件ID检查的验证规则必须在main()中实现 条件是:Java程序-使用字符串和正则表达式验证电子邮件地址,java,regex,string,Java,Regex,String,问题陈述如下: 我们需要创建一个名为emailId的字符串数据类型 必须使用适当的setter方法设置电子邮件ID 电子邮件ID检查的验证规则必须在main()中实现 条件是: 电子邮件ID的总长度必须大于3和3&&length如果你坚持使用正则表达式,你可以使用它,但如果没有正确验证,你可能会遇到各种各样的麻烦 static Pattern emailPattern = Pattern.compile("[a-zA-Z0-9[!#$%&'()*+,/\-_\.\"]]+@[a-zA-Z
static Pattern emailPattern = Pattern.compile("[a-zA-Z0-9[!#$%&'()*+,/\-_\.\"]]+@[a-zA-Z0-9[!#$%&'()*+,/\-_\"]]+\.[a-zA-Z0-9[!#$%&'()*+,/\-_\"\.]]+");
public static boolean isValidEmail(String email) {
Matcher m = emailPattern.matcher(email); return !m.matches();
}
或者你也可以使用
public static boolean isValidEmailAddress(String email) {
boolean result = true;
try {
InternetAddress emailAddr = new InternetAddress(email);
emailAddr.validate();
} catch (AddressException ex) {
result = false;
}
return result;
}
这是一个核心java实用程序,它会更好
请注意,这两种方法都不能保证地址实际上是有效的,只是它的格式正确,因此假设可能存在
String email_regex = "[A-Z]+[a-zA-Z_]+@\b([a-zA-Z]+.){2}\b?.[a-zA-Z]+";
String testString = "Im_an_email@email.co.uk";
Boolean b = testString.matches(email_regex);
System.out.println("String: " + testString + " :Valid = " + b);
将检查最后三个约束,然后您可以将它们组合在一起
string.length()>3 && string.length()<20
string.length()>3&&string.length()如果你坚持使用正则表达式,你可以使用它,但如果不正确验证,你可能会遇到各种各样的麻烦
static Pattern emailPattern = Pattern.compile("[a-zA-Z0-9[!#$%&'()*+,/\-_\.\"]]+@[a-zA-Z0-9[!#$%&'()*+,/\-_\"]]+\.[a-zA-Z0-9[!#$%&'()*+,/\-_\"\.]]+");
public static boolean isValidEmail(String email) {
Matcher m = emailPattern.matcher(email); return !m.matches();
}
或者你也可以使用
public static boolean isValidEmailAddress(String email) {
boolean result = true;
try {
InternetAddress emailAddr = new InternetAddress(email);
emailAddr.validate();
} catch (AddressException ex) {
result = false;
}
return result;
}
这是一个核心java实用程序,它会更好
请注意,这两种方法都不能保证地址实际上是有效的,只是它的格式正确,因此假设可能存在
String email_regex = "[A-Z]+[a-zA-Z_]+@\b([a-zA-Z]+.){2}\b?.[a-zA-Z]+";
String testString = "Im_an_email@email.co.uk";
Boolean b = testString.matches(email_regex);
System.out.println("String: " + testString + " :Valid = " + b);
将检查最后三个约束,然后您可以将它们组合在一起
string.length()>3 && string.length()<20
string.length()>3&&string.length()
电子邮件ID的总长度必须大于3并且
电子邮件ID的总长度必须大于3,并且您的每个验证规则都是错误的。不要这样做。旁注:if((长度>3和长度3和length@Slaks你能建议我应该改进什么吗?把它们都扔掉。有效电子邮件地址的规则非常复杂;你应该使用@Kyle:我想不出在任何正常情况下任何规则都是正确的。你的每一条验证规则都是错误的。不要这样做。旁注:如果((长度>3和长度3和length@Slaks你能建议我应该改进什么吗?把它们都扔掉。有效电子邮件地址的规则非常复杂;你应该使用@Kyle:我想不出任何明智的情况下任何规则都是正确的。非常感谢@TheGrinner非常感谢@TheGrinner也许你可以用这里的最后一个例子或者你在那里给出的很好的解释来标注你的答案。也许你可以用这里的最后一个例子或者你在那里给出的很好的解释来更新你的答案。