1

この検証のために多くのことを試しましたが、次のコードを配置する場所がわかりません

String expression="^[\\w\\-]([\\.\\w])+[\\w]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";.

これで私を助けてください。

4

2 に答える 2

8

これが役立つことを願っています。SWING UI の Submit ボタンをクリックすると、actionListener に検証コードを記述します。

   Emailvalidator emailValidator = new Emailvalidator();
   if(!emailValidator.validate(emailField.getText().trim())) {
        System.out.print("Invalid Email ID");
        /*
           Action that you want to take. For ex. make email id field red
           or give message box saying invalid email id.
        */
   }

これは別のクラス EmailValidator です

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

public class EmailValidator {

    private Pattern pattern;
    private Matcher matcher;

    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,})$";

    public EmailValidator() {
        pattern = Pattern.compile(EMAIL_PATTERN);
    }

    /**
     * Validate hex with regular expression
     * 
     * @param hex
     *            hex for validation
     * @return true valid hex, false invalid hex
     */
    public boolean validate(final String hex) {

        matcher = pattern.matcher(hex);
        return matcher.matches();

    }
}

余談ですが、これにより、入力した電子メール ID が正しい形式であることを確認できます。ID を検証する場合は、確認番号を含むメールを送信し、ユーザーにその番号を UI に入力してから続行するように依頼します。

于 2013-03-07T11:12:42.780 に答える
0

電子メールアドレスの形式はかなり複雑になる可能性があります。実際、その複雑さはほとんど伝説的です。

JavaMailInternetAddressクラスは、正規表現よりもはるかに信頼性の高い方法で電子メールアドレスを解析できます。

于 2013-03-07T13:26:40.797 に答える