374 Stimmen

Wie sollte ich eine E-Mail-Adresse validieren?

Was ist eine gute Technik für die Validierung einer E-Mail-Adresse (z. B. aus einem Benutzer-Eingabefeld) in Android? org.apache.commons.validator.routines.EmailValidator scheint nicht verfügbar zu sein. Gibt es andere Bibliotheken, die dies tun, die in Android bereits enthalten sind oder würde ich RegExp verwenden müssen?

5voto

Ich kann Ihnen nur wärmstens empfehlen, nicht zu versuchen, E-Mail-Adressen zu "validieren", denn damit machen Sie sich nur unnötig viel Arbeit.

Vergewissern Sie sich nur, dass das, was eingegeben wird, Ihren eigenen Code nicht beschädigt - z. B. keine Leerzeichen oder unzulässigen Zeichen, die eine Ausnahme verursachen könnten.

Alles andere verursacht nur eine Menge Arbeit für minimalen Ertrag...

5voto

Virag Brahme Punkte 2090

Überprüfen Sie das Format Ihrer E-Mail-Adresse. Ex-virag@gmail.com

public boolean emailValidator(String email) 
{
    Pattern pattern;
    Matcher matcher;
    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.compile(EMAIL_PATTERN);
    matcher = pattern.matcher(email);
    return matcher.matches();
}

4voto

E-Mail-Validierung in Kotlin:

val email = etEmail.text.toString().trim() // get email from user

  if(isValidEmail(email)){ // call isValidEmail function and pass email in parameter
      // Your email ID is Valid
  }else{
      // Enter your valid email ID
  }

Diese Methode wird zur Überprüfung gültiger E-Mail-ID-Formate verwendet.

    fun isValidEmail(email: CharSequence): Boolean {
        var isValid = true
        val expression = "^[\\w.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$"
        val pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE)
        val matcher = pattern.matcher(email)
        if (!matcher.matches()) {
            isValid = false
        }
        return isValid
    }

4voto

Atif Mahmood Punkte 8502
    public boolean isValidEmail(String email)
{
    boolean isValidEmail = false;

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

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

3voto

Mahendra Liya Punkte 11992

Wenn Sie API 8 oder höher verwenden, können Sie die sofort verfügbare Patterns Klasse zur Validierung von E-Mails. Beispielcode:

public final static boolean isValidEmail(CharSequence target) {
    if (target == null) 
        return false;

    return android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches();
}

Wenn Sie zufällig sogar API-Level kleiner als 8 unterstützen, können Sie einfach die Patterns.java Datei in Ihr Projekt und referenzieren Sie sie. Sie können den Quellcode für Patterns.java de dieser Link

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X