仅使用java中的regex验证特定电子邮件

时间:2013-02-11 17:11:29

标签: java regex validation email

我正在尝试验证电子邮件地址。我目前有:

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

这将验证任何电子邮件,但我只是尝试验证公司特定的电子邮件,例如

myname@specificemail.com

电子邮件将始终以.com结尾,但我希望能够在以后使用不同的特定字符串更改公司名称,例如@ anotheremail.com,@ somethingelse.com

任何人都可以帮助解决语法问题吗?

由于

4 个答案:

答案 0 :(得分:2)

您可以使用此正则表达式验证公司特定的电子邮件:

private static final String coDomain = "specificemail.com";
private static final String EMAIL_PATTERN = 
    "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"
    + Pattern.quote(coDomain) + "$";

稍后只需根据需要将coDomain变量的值更改为其他名称。

答案 1 :(得分:0)

// be careful with regex meta characters in the company name.
public static String emailFromCompanyPatternString(String company) {
    return "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"
    + company + (\\.[A-Za-z]{2,})$";
}

答案 2 :(得分:0)

也许是这样的:

public static Pattern getEmailValidator( String domain ) {
    return Pattern.compile( "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@" + domain );
}

public void someMethodThatNeedsToValidatEmail( String domain, String email ) {
    return getEmailValidator( domain ).matches( email );
}

注意,这是未经测试的代码......

答案 3 :(得分:0)

我使用的是特定的结束域名。只需用" @ gmail.com"

替换您的结束域名
private static final String EMAIL_REGEX1 = 
"^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@gmail.com";

private static final String EMAIL_REGEX1 = 
"^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@somethingelse.com";

访问https://ideone.com/UUTnky以获取完整的正则表达式电子邮件验证Java实施。