2016-05-31 37 views
-1

我正在開發一個應用程序,其中我有一個電子郵件編輯文本字段,我在其中進行了一些驗證,但沒有正確輸入電子郵件,例如[email protected]但除了這是錯誤的右邊驗證是jj @ gmail.com如何在android中對電子郵件進行驗證?

我該怎麼做?

這裏是代碼: -

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(); 
} 
+0

嘗試的EditText驗證https://github.com/vekexasia/android-edittext-validator –

+4

[email protected]應該是有效的 - 從這個SO鏈接

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

回答電子郵件地址。並非所有的電子郵件地址都是Gmail地址,正確的電子郵件格式是您的示例郵件所遵循的「name @ domain.topLevelDomain」。 –

+3

[我應該如何驗證電子郵件地址?](http://stackoverflow.com/questions/1819142/how-should-i-validate-an-e-mail-address) –

回答

0

如果你想使用正則表達式,然後嘗試這種方式來獲得有效的電子郵件

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

    String expression = "^[\\w\\.-][email protected]([\\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(); 
} 
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(); 

} 
} 
0

功能用於確認EMAILID

private boolean isEmailValid(String email) { 

    String regExpn = "^(([\\w-]+\\.)+[\\w-]+|([a-zA-Z]{1}|[\\w-]{2,}))@" + "((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\\.([0-1]?" + "[0-9]{1,2}|25[0-5]|2[0-4][0-9])\\." 
      + "([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\\.([0-1]?" + "[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|" + "([a-zA-Z]+[\\w-]+\\.)+[a-zA-Z]{2,4})$"; 
    CharSequence inputStr = email; 
    Pattern pattern = Pattern.compile(regExpn, Pattern.CASE_INSENSITIVE); 
    Matcher matcher = pattern.matcher(inputStr); 
    if (matcher.matches()) 
     return true; 
    else 
     return false; 

} 
相關問題