可以使用Apache Commons Email Validator库中提供的EmailValidator类,该类可以验证电子邮件地址是否符合RFC规范,并且可以自定义一些验证选项。我们可以在EmailValidator.getInstance()方法中传递一个自定义选项的实例,然后在选项中设置允许加号字符。
以下是示例代码:
import org.apache.commons.validator.routines.EmailValidator;
public class EmailValidation {
public boolean validateEmail(String email) {
// 自定义验证选项
EmailValidator validator = EmailValidator.getInstance(true, true);
validator.setAllowedLocalPattern("[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*");
return validator.isValid(email);
}
public static void main(String[] args) {
EmailValidation validation = new EmailValidation();
boolean result = validation.validateEmail("example+test@email.com");
System.out.println(result);
}
}
在此示例中,我们创建了一个EmailValidator实例,并使用setAllowedLocalPattern()方法设置了允许的本地部分模式。这个模式允许任何字母、数字和特定字符(!#$%&'*+ / =?^ _` {|}〜 -)出现1次或多次,同时允许这些字符的重复性。因此,我们可以在电子邮件中包含加号字符,且按照RFC规范验证正确。