如何在android中验证电子邮件?

时间:2016-05-31 03:12:21

标签: android email

我正在开发一个应用程序,其中我有电子邮件编辑文本字段,我在其中进行了一些验证,但是当我输入 jj@gm.cim 之类的电子邮件时它不正确但它是错误的验证是 jj@gmail.com

我该怎么做?

这是代码: -

public boolean validation(String mobile,String pass,String email){
    if (mobile!=null && mobile.length() >= 7 && mobile.length() <= 15) {
        if (pass.length() >= 4 && pass.length() <= 8) {
            if (isValidEmail(email)) {
                return true;
            } else {
                m_EmailEditText.setError("Invalid EmailID");
                return false;
            }
        } else {
            m_PasswordEditText.setError("password must be between 4 to 8 characters long");
            return false;
        }
    } else {
        m_MobileEditText.setError("mobile number must be between 7 to 51 characters long");
        return false;
    }
}
// This is validation for email……….and link to above code….
private boolean isValidEmail(String email) {
    String emailPattern = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"
            + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";

    Pattern pattern = Pattern.compile(emailPattern);
    Matcher matcher = pattern.matcher(email);
    return matcher.matches();
}

4 个答案:

答案 0 :(得分:0)

如果您想使用正则表达式,请尝试这种方式来获取有效的电子邮件

public static boolean isEmailValid(String email) {
    boolean isValid = false;

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

    Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher(inputStr);
    if (matcher.matches()) {
        isValid = true;
    }
    return isValid;
}

OR 如果你想使用默认验证,请尝试这种方式

boolean isEmailValid(CharSequence email) {
   return android.Util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
}

答案 1 :(得分:0)

您也可以使用,

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();

}
 }

答案 2 :(得分:0)

验证EmailID的功能

EquipmentNumber

答案 3 :(得分:0)

参考android 模式

它是android inbuild正则表达式方法。

https://developer.android.com/reference/android/util/Patterns.html

public final static boolean isValidEmail(CharSequence target) {
 return !TextUtils.isEmpty(target) &&   android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches();
}

通过此SO链接回答 - https://stackoverflow.com/a/7882950/3879847