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