我正在研究最好的方法来检查String是否是有效的电子邮件地址。我现在固定在两个选项上,即使用javax.mail.internet.InternetAddress;或使用内部使用复杂的正则表达式解析器的Apache Commons EmailValidator

我想知道在正确性方面选择一个优于另一个是否有优势,还是两者都很好?我知道InternetAddress在某些情况下无法有效处理非ASCII字符。

最佳答案

您可以为此使用Apache Commons Validator库中的EmailValidator:

import org.apache.commons.validator.EmailValidator;
...

EmailValidator validator = EmailValidator.getInstance();
if (validator.isValid(email)) {
   // is valid, do something
} else {
   // is invalid, do something
}
isValid方法检查字段是否具有有效的电子邮件地址。
根据这个问题,这是最好的Java电子邮件地址验证方法
What is the best Java email address validation method?

10-05 22:09