如何使用swing代码中的正则表达式验证电子邮件ID的JTextField?

时间:2013-03-07 11:05:26

标签: java regex swing netbeans-6.9

我已经为这次验证做了很多尝试但是我没有把它放在哪里放下以下代码

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

请帮助我。

2 个答案:

答案 0 :(得分:8)

我希望这会有所帮助。单击SWING UI上的“提交”按钮时,在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上输入该号码,然后继续。

答案 1 :(得分:0)

电子邮件地址的格式可以pretty complex。事实上,它的复杂性几乎是legendary

JavaMail中的InternetAddress类是解析电子邮件地址比正则表达式更可靠的方法。