电子邮件验证器(Java,ç,é,è,ê,î,ï,ô,ù)Java中的特殊字符

时间:2013-07-22 09:24:17

标签: java gwt email-validation

我正在寻找可在GWTJava中使用的通用电子邮件验证器模式。 特别是我需要接受包含以下字符的电子邮件:

à, ç, é, è, ê, î, ï, ô, ù

2 个答案:

答案 0 :(得分:2)

根据RFC822或RFC2822(废弃第一个),这些字符集无效。它们虽然是草稿 RFC5335的一部分。

通常,验证电子邮件的正则表达式是个坏主意。他们可以复杂as this one。所以,通常我会尝试在结果和代码复杂性之间找到一个很好的折衷方案。我喜欢这样做:

    try {
        new InternetAddress(email, true);
    } catch (AddressException e) {
        return false;
    }

InternetAddress是JavaMail包中包含的类,true参数表示它执行严格验证。它工作得很好。将其作为官方JavaMail包,很可能是实现与新版本保持同步。

这些字符串在发件人名称中有效,此代码处理它。

àndreas <andreas@gmail.com> // pass validation
àndreas@gmail.com           // don't pass validation

答案 1 :(得分:-2)

 import java.util.regex.Matcher;
 import java.util.regex.Pattern;

public class ValidatorUtil {

private static final String PATTERN_EMAIL = "^[_A-Za-z0-9-\\+ HERE PUT YOUR ADITIONAL CHARACTERS]+(\\.[_A-Za-z0-9-]+)*@"
        + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";

/**
 * Validate given email with regular expression.
 * 
 * @param email
 *            email for validation
 * @return true valid email, otherwise false
 */
public static void main(String args[])
{


    String email = "aáaaa@gmail.com";
    // Compiles the given regular expression into a pattern.
    Pattern pattern = Pattern.compile(PATTERN_EMAIL);

    // Match the given input against this pattern
    Matcher matcher = pattern.matcher(email);
    System.out.println(matcher.matches());


}

}