2

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

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

4 回答 4

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 变量的值更改为其他名称。

于 2013-02-11T17:17:40.507 回答
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 );
}

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

于 2013-02-11T17:18:29.373 回答
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,})$";
}
于 2013-02-11T17:17:12.090 回答
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 实施。

于 2018-01-19T18:05:52.907 回答