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
// 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

おそらくこのようなもの:

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

私はこれを特定の終了ドメインに使用しています。終了ドメインを「@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";

完全な正規表現の電子メール検証Javaの実装については、https: //ideone.com/UUTnkyにアクセスしてください。

于 2018-01-19T18:05:52.907 に答える