Java中的EmailAddress验证

kur*_*der 5 apache-commons javax.mail

我正在研究检查String一个有效的电子邮件地址的最佳方法.我现在关注两个选项,即使用javax.mail.internet.InternetAddress; 或者使用Apache Commons EmailValidator,它在内部使用复杂的正则表达式解析器.

我想知道在正确性方面挑选一个优于另一个是否有任何优势,或者两者都很好?我知道InternetAddress在某些情况下不能有效处理非ascii字符的事实.

Bor*_*ris 20

您可以使用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
}
Run Code Online (Sandbox Code Playgroud)

isValid方法检查字段是否具有有效的电子邮件地址.

根据这个问题, 这是最好的Java电子邮件地址验证方法什么是最好的Java电子邮件地址验证方法?