E-Mail-Adressvalidierung in Android auf EditText [duplicate]

Lesezeit: 5 Minuten

E Mail Adressvalidierung in Android auf EditText duplicate
Rahul Baradia

Wie können wir auftreten Email Validation an edittext in android ? Ich habe Google & SO durchgesehen, aber ich habe keinen einfachen Weg gefunden, es zu validieren.

  • android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();

    – Pratik Butani

    16. Dezember 13 um 10:40 Uhr


1643909586 880 E Mail Adressvalidierung in Android auf EditText duplicate
Benutzer1737884

Java:

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

Kotlin:

fun CharSequence?.isValidEmail() = !isNullOrEmpty() && Patterns.EMAIL_ADDRESS.matcher(this).matches()

Bearbeiten: Es funktioniert ab Android 2.2+ !!

Edit: Fehlt hinzugefügt ;

  • +1 für die Verwendung der integrierten Funktion. würde ich auch ersetzen target == nullmit TextUtils.isEmpty(target).

    – rciovati

    13. April 13 um 9:02 Uhr


  • einzeilige Lösung return !TextUtils.isEmpty(target) && Patterns.EMAIL_ADDRESS.matcher(target).matches();

    – Madan Sapkota

    20. Juni 15 um 5:44 Uhr

  • Dieses eingebaute Muster ist leider unvollständig. Beispiel: „a@a“. würde passieren. Überprüfen Sie diese Frage auf eine “gut genug für die meisten” und eine RFC822-konforme Antwort.

    – MPelletier

    18. Juni 17 um 20:50 Uhr

  • oder ein einzelner Liner boolean result = !TextUtils.isEmpty(target) && android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches(); 🙂

    – Faisal Naseer

    30. Oktober 17 um 10:56 Uhr

  • @MPelletier Nun, ich habe es selbst getestet und “a@a”. wird nicht passieren

    – HendraWD

    31. März 18 um 13:16 Uhr

E Mail Adressvalidierung in Android auf EditText duplicate
Rahul Baradia

Um die E-Mail-Validierung durchzuführen, haben wir viele Möglichkeiten, aber die einfachsten und einfachsten sind zwei Methoden.

1- Verwenden EditText(....).addTextChangedListener die bei jedem Eingang in an triggert EditText box dh email_id ist ungültig oder gültig

/**
 * Email Validation ex:- [email protected]
*/


final EditText emailValidate = (EditText)findViewById(R.id.textMessage); 

final TextView textView = (TextView)findViewById(R.id.text); 

String email = emailValidate.getText().toString().trim();

String emailPattern = "[a-zA-Z0-9._-]+@[a-z]+\.+[a-z]+";

emailValidate .addTextChangedListener(new TextWatcher() { 
    public void afterTextChanged(Editable s) { 

    if (email.matches(emailPattern) && s.length() > 0)
        { 
            Toast.makeText(getApplicationContext(),"valid email address",Toast.LENGTH_SHORT).show();
            // or
            textView.setText("valid email");
        }
        else
        {
             Toast.makeText(getApplicationContext(),"Invalid email address",Toast.LENGTH_SHORT).show();
            //or
            textView.setText("invalid email");
        }
    } 
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    // other stuffs 
    } 
    public void onTextChanged(CharSequence s, int start, int before, int count) {
    // other stuffs 
    } 
}); 

2- Einfachste Methode mit if-else Kondition. Nehmen Sie die EditText-Feldzeichenfolge mit getText() und vergleichen Sie sie mit dem für E-Mails bereitgestellten Muster. Wenn das Muster nicht übereinstimmt oder übereinstimmt, wird durch Klicken auf die Schaltfläche eine Nachricht angezeigt. Es wird nicht bei jeder Eingabe eines Zeichens in das EditText – Feld ausgelöst . einfaches Beispiel unten gezeigt.

final EditText emailValidate = (EditText)findViewById(R.id.textMessage); 

final TextView textView = (TextView)findViewById(R.id.text); 

String email = emailValidate.getText().toString().trim();

String emailPattern = "[a-zA-Z0-9._-]+@[a-z]+\.+[a-z]+";

// onClick of button perform this simplest code.
if (email.matches(emailPattern))
{
Toast.makeText(getApplicationContext(),"valid email address",Toast.LENGTH_SHORT).show();
}
else 
{
Toast.makeText(getApplicationContext(),"Invalid email address", Toast.LENGTH_SHORT).show();
}

  • Danke, es hat mir sehr geholfen

    – C Schärfer

    23. August 13 um 10:42 Uhr

  • Zweitens einfach und gut … vielen Dank

    – Srihari

    31. Juli 14 um 08:11 Uhr

  • Dies ist kein gültiges E-Mail-Muster. schlägt bei [email protected] fehl.

    – Jijo Thomas

    23. Juli 16 um 19:55 Uhr


  • @JijoThomas danke.

    – Rahul Baradia

    25. Juli 16 um 6:06 Uhr

  • funktioniert nicht für E-Mail “[email protected]

    – Basant

    18. September 17 um 08:54 Uhr

1643909586 499 E Mail Adressvalidierung in Android auf EditText duplicate
Hiren Patel

Ich habe es so gemacht:

Füge das hinzu Methode zu prüfe ob E-Mail-Addresse ist gültig oder nicht:

private boolean isValidEmailId(String email){

    return Pattern.compile("^(([\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})$").matcher(email).matches();
     }

Prüfen Sie jetzt mit Schnur von Text bearbeiten:

if(isValidEmailId(edtEmailId.getText().toString().trim())){
  Toast.makeText(getApplicationContext(), "Valid Email Address.", Toast.LENGTH_SHORT).show();
}else{       
  Toast.makeText(getApplicationContext(), "InValid Email Address.", Toast.LENGTH_SHORT).show();
}

Fertig

  • Dieser funktioniert für mich, weil er “[email protected]” akzeptiert.

    – kein Profil

    2. Februar 21 um 8:13 Uhr

Verwenden Sie diese Methode zur Validierung Ihres E-Mail-Formats. Übergeben Sie die E-Mail als Zeichenfolge, sie gibt wahr zurück, wenn das Format korrekt ist, andernfalls falsch.

/**
 * validate your email address format. [email protected]
 */
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 Adressvalidierung in Android auf EditText duplicate
Jay Thakkar

Versuche dies:

if (!emailRegistration.matches("[a-zA-Z0-9._-]+@[a-z]+.[a-z]+")) {
 editTextEmail.setError("Invalid Email Address");
}

  • Dies funktioniert nicht für E-Mails mit mehreren Punkten in der Domäne wie [email protected] . Es stimmt auch mit Dingen ohne Punkte wie name@gmailcom überein

    – Matian

    19. April 15 um 9:51 Uhr

  • Los geht’s, haben Sie Ihre Regex so korrigiert, dass sie den wörtlichen Punkt anstelle des Punkts “akzeptiere hier jedes Zeichen” enthält.

    – Zombiesauce

    25. Juli 2020 um 16:52 Uhr

1643909587 947 E Mail Adressvalidierung in Android auf EditText duplicate
Gaurav Arora

Verwenden Sie diese Methode, um die E-MAIL zu validieren: –

 public static boolean isEditTextContainEmail(EditText argEditText) {

            try {
                Pattern pattern = Pattern.compile("^[_A-Za-z0-9-]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$");
                Matcher matcher = pattern.matcher(argEditText.getText());
                return matcher.matches();
            } catch (Exception e) {
                e.printStackTrace();
                return false;
            }
        }

Lassen Sie mich wissen, wenn Sie Fragen haben?

  • Dies funktioniert nicht für E-Mails mit mehreren Punkten in der Domäne wie [email protected] . Es stimmt auch mit Dingen ohne Punkte wie name@gmailcom überein

    – Matian

    19. April 15 um 9:51 Uhr

  • Los geht’s, haben Sie Ihre Regex so korrigiert, dass sie den wörtlichen Punkt anstelle des Punkts “akzeptiere hier jedes Zeichen” enthält.

    – Zombiesauce

    25. Juli 2020 um 16:52 Uhr

1643909587 561 E Mail Adressvalidierung in Android auf EditText duplicate
NagarjunaReddy

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

    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()) {
        isValid = true;
    }
    return isValid;
}

  • Danke für Anregungen..

    – Rahul Baradia

    18. Oktober 12 um 5:33 Uhr

  • Das hat bei mir perfekt funktioniert, vielleicht macht der Ausdruck den Unterschied.

    – Sagar G.

    20. Juni 13 um 10:22 Uhr

.

758120cookie-checkE-Mail-Adressvalidierung in Android auf EditText [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy