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?
Antworten
Zu viele Anzeigen?Es gibt eine Patterns
Klasse im Paket android.util
was hier von Vorteil ist. Im Folgenden finden Sie die Methode, die ich immer für die Validierung von E-Mails und viele andere Dinge verwende
private boolean isEmailValid(String email) {
return !TextUtils.isEmpty(email) && Patterns.EMAIL_ADDRESS.matcher(email).matches();
}
Die einfachste Kotlin-Lösung mit Erweiterungsfunktionen:
fun String.isEmailValid() =
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}" +
")+"
).matcher(this).matches()
und dann können Sie wie folgt validieren:
"testemail6589@gmail.com".isEmailValid()
Wenn Sie sich in kotlin-multiplatform befinden und keinen Zugang zu Pattern
ist dies das Äquivalent:
fun String.isValidEmail() = Regex(emailRegexStr).matches(this)
Für eine E-Mail-Validierung bietet Android einige Eingebautes Muster Aber es unterstützt nur API-Stufe 8 und höher .
Hier ist der Code für die Verwendung dieses Musters zur Überprüfung der E-Mail-Validierung.
private boolean Email_Validate(String email)
{
return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
}
Stellen Sie sicher, dass Sie nach der Ausführung dieser Methode prüfen, ob diese Methode wahr dann können Sie die E-Mail speichern und wenn diese Methode falsch dann wird die Meldung angezeigt, dass die E-Mail "ungültig" ist.
Ich hoffe, Sie erhalten Ihre Antwort, Ich danke Ihnen.
Rufen Sie diese Methode auf, wenn Sie die E-Mail-ID validieren möchten.
public static boolean isValid(String email)
{
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())
{
return true;
}
else{
return false;
}
}