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?

25voto

Pankaj Talaviya Punkte 3010

Verwenden Sie einfachen Ein-Zeilen-Code für die E-Mail-Validierung

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

verwenden wie...

if (!isValidEmail(yourEdittext.getText().toString()) {
    Toast.makeText(context, "your email is not valid", 2000).show();
}

21voto

Danilo Lemes Punkte 1994

Sie könnten eine Kotlin-Erweiterung wie diese schreiben:

fun String.isValidEmail() =
        isNotEmpty() && android.util.Patterns.EMAIL_ADDRESS.matcher(this).matches()

Und dann nennen Sie es so:

email.isValidEmail()

16voto

Matteo Punkte 1426

Dies sind Vorschläge für Android Studio:

public static boolean isEmailValid(String email) {
    return !(email == null || TextUtils.isEmpty(email)) && android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
}

12voto

Victor Odiah Punkte 1041

Verwenden Sie Android:inputType="textEmailAddress" wie unten:

       <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="email"
        android:inputType="textEmailAddress"
        android:id="@+id/email"
        />

und:

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

11voto

Mudassir Punkte 14250

Sie können dazu reguläre Ausdrücke verwenden. Etwas wie das Folgende.

Pattern pattern = Pattern.compile(".+@.+\\.[a-z]+");
String email = "xyz@xyzdomain.com";
Matcher matcher = pattern.matcher(email);
boolean matchFound = matcher.matches();

Hinweis: Überprüfen Sie den oben angegebenen regulären Ausdruck, verwenden Sie ihn nicht so wie er ist.

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