E-mail e telefono Validation numero in Android

? user3437313 @ | Original: StackOverFlow
---

Nella mia applicazione ho un registrazione che sto convalidando l' ogni campo nel mio modulo di registrazione . Ma qui io sto affrontando qualche problema con la mia convalida mentre convalida il numero di telefono ed e-mail id .

Ecco il mio codice :

private boolean validate(){

       String MobilePattern = "[0-9]{10}";
       //String email1 = email.getText().toString().trim();
       String emailPattern = "[a-zA-Z0-9._-]+@[a-z]+.+[a-z]+";


    if(name.length() > 25){
        Toast.makeText(getApplicationContext(), "pls enter less the 25 

characher in user name", Toast.LENGTH_SHORT).show();
        return true;
    }



    else if(name.length() == 0 || number.length() == 0 || email.length() == 

0 || subject.length() == 0 || message.length() == 0){
        Toast.makeText(getApplicationContext(), "pls fill the empty 

fields", Toast.LENGTH_SHORT).show();
        return false;
    }

    else if (email.getText().toString().matches(emailPattern))
    { 
        //Toast.makeText(getApplicationContext(),"valid email 

address",Toast.LENGTH_SHORT).show();


        return true;
    }
    else if(!email.getText().toString().matches(emailPattern))
    { 
        Toast.makeText(getApplicationContext(),"Please Enter Valid Email 

Adress",Toast.LENGTH_SHORT).show();


        return false;
    }
    else if(number.getText().toString().matches(MobilePattern))
    {
        Toast.makeText(getApplicationContext(), "phone number is valid", 

Toast.LENGTH_SHORT).show();

        return true;
    }
    else if(!number.getText().toString().matches(MobilePattern))
    {
        Toast.makeText(getApplicationContext(), "Please enter valid 10 

digit phone number", Toast.LENGTH_SHORT).show();


        return false;
    }

    return false;

     }

Ho usato questo codice sopra per la convalida il problema che sto affrontando è il numero di telefono ed e-mail id convalida una sola convalida sta lavorando per esempio io commento la convalida numero di telefono e-mail id funziona correttamente se io commento il numero di telefono e-mail id convalida funziona se utilizzare la convalida sia la sua non funziona .

---

Top 5 Risposta

1Shabbir Dhangot @

Per valido Indirizzo e-mail

private boolean isValidMail(String email2) 
{
    boolean check;
    Pattern p;
    Matcher m;

    String EMAIL_STRING = "^[_A-Za-z0-9-+]+(.[_A-Za-z0-9-]+)*@"
            + "[A-Za-z0-9-]+(.[A-Za-z0-9]+)*(.[A-Za-z]{2,})$";

    p = Pattern.compile(EMAIL_STRING);

    m = p.matcher(email2);
    check = m.matches();

    if(!check)
    {
        txtEmail.setError("Not Valid Email");
    }
    return check;
}

Per Valido mobile È necessario considerare 7 digit a 13 cifre perché alcuni paesi hanno numero di cellulare a 7 cifre . Inoltre, non possiamo controllare, come numero di cellulare deve inizia con 9 o 8 o nulla ..

Per numero di cellulare ho usato questo questa funzione

private boolean isValidMobile(String phone2) 
{
    boolean check;
    if(phone2.length() < 6 || phone2.length() > 13)
    {
        check = false;
        txtPhone.setError("Not Valid Number");
    }
    else
    {
        check = true;
    }
    return check;
}
2jyomin @

Si dovrebbe restituire false se non valida altro tipo di ritorno della funzione dovrebbe essere vero

private boolean validate(){

       String MobilePattern = "[0-9]{10}";
       //String email1 = email.getText().toString().trim();
       String emailPattern = "[a-zA-Z0-9._-]+@[a-z]+.+[a-z]+";


    if(name.length() > 25){
        Toast.makeText(getApplicationContext(), "pls enter less the 25 

characher in user name", Toast.LENGTH_SHORT).show();
        return false;
    }



   if(name.length() == 0 || number.length() == 0 || email.length() == 

0 || subject.length() == 0 || message.length() == 0){
        Toast.makeText(getApplicationContext(), "pls fill the empty 

fields", Toast.LENGTH_SHORT).show();
        return false;
    }

    if (!(email.getText().toString().matches(emailPattern)))
    { 
        //Toast.makeText(getApplicationContext(),"Not valid email 

address",Toast.LENGTH_SHORT).show();


        return false;
    }


    if(!number.getText().toString().matches(MobilePattern))
    {
        Toast.makeText(getApplicationContext(), "Please enter valid 10 

digit phone number", Toast.LENGTH_SHORT).show();


        return false;
    }

    return true;

     }
3Nambi Narayanan @

Utilizzare http://developer.android.com/reference/java/util/regex/Pattern.html pacchetto in Android per abbinare la convalida input per email e per telefono

Do like

Pattern
4Akki @

Try this

android.util.Patterns.EMAIL_ADDRESS.matcher(input).matches();
android.util.Patterns..PHONE.matcher(input).matches();
5Thomas Bouron @

Android ha http://developer.android.com/reference/android/util/Patterns.html per e-mail, numero di telefono, ecc, che è possibile utilizzare se si sta costruendo per il livello API Android 8 e superiori .

public class Validation {

    public final static boolean isValidEmail(CharSequence target) {
        if (target == null) {
        return false;
        } else {
        return android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches();
        }
    } 

    public static final boolean isValidPhoneNumber(CharSequence target) {
        if (target.length()!=10) {
            return false;
        } else {
            return android.util.Patterns.PHONE.matcher(target).matches();
        }
    }

}