Android - 电子邮件验证

Gow*_*wri 5 regex android

如何进行电子邮件验证?我使用以下代码来检查电子邮件的验证.

final String EMAIL_PATTERN = "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-    Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
Pattern pattern = Pattern.compile(EMAIL_PATTERN);
Matcher matcher = pattern.matcher(string);
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常,但如果我也输入字符串"example@gmail.com.com",我得到的响应true.

我需要验证这一点.我怎么验证这个?请帮我.

WIS*_*SHY 22

使用此代码块将电子邮件传递给此函数,它将返回布尔值true或false

  private boolean validEmail(String email) {
    Pattern pattern = Patterns.EMAIL_ADDRESS;
    return pattern.matcher(email).matches();
}


  if (!validEmail(email)) {
     Toast.makeText(YourActivity.this,"Enter valid e-mail!",Toast.LENGTH_LONG).show();

}
Run Code Online (Sandbox Code Playgroud)


Sne*_*kar 0

使用以下类:

public class RequiredFieldValidator implements Validator {

    /** The objects. */
    List<EditText> objects;

    /** The Constant EMAIL_ADDRESS_PATTERN. */
    private final static Pattern EMAIL_ADDRESS_PATTERN = Pattern
            .compile("[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" + "\\@"
                    + "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" + "(" + "\\."
                    + "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" + ")+");

    /**
     * Check email.
     *
     * @param email the email
     * @return true, if successful
     */
    public static boolean checkEmail(String email) {
        return EMAIL_ADDRESS_PATTERN.matcher(email).matches();
    }

    /**
     * Instantiates a new required field validator.
     *
     * @param objects the objects
     */
    public RequiredFieldValidator(List<EditText> objects) {
        this.objects = objects;
    }

    /* (non-Javadoc)
     * @see com.gangaz.mobi.supermarket.helper.Validator#setFailureMessage(java.lang.String)
     */
    @Override
    public void setFailureMessage(String message) {
        // TODO Auto-generated method stub

    }

    /* (non-Javadoc)
     * @see com.gangaz.mobi.supermarket.helper.Validator#setType(int)
     */
    @Override
    public void setType(int type) {
        // TODO Auto-generated method stub

    }

    /* (non-Javadoc)
     * @see com.gangaz.mobi.supermarket.helper.Validator#validate()
     */
    @Override
    public boolean validate() {
        boolean valid = false;
        for (EditText obj : objects) {

            if (obj.getText().toString().trim().length() == 0) {
                valid = false;
                break;
            }

        }
        return valid;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在您的活动中执行以下操作:

if (email.length() != 0 && 
  RequiredFieldValidator.checkEmail(email.trim()) != true) {

                //show toast for invalid email

                }
Run Code Online (Sandbox Code Playgroud)