我正在尝试验证电子邮件地址。我目前有:
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
任何人都可以帮助解决语法问题吗?
由于
答案 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实施。