E-mail e número de telefone de Validação no android

? user3437313 @ | Original: StackOverFlow
---

Na minha aplicação eu tenho um registro estou validando a cada campo na minha ficha de inscrição . Mas aqui eu estou enfrentando algum problema com a minha validação enquanto a validação do número de telefone e e-mail id .

Aqui está o meu código:

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;

     }

Eu tenho usado este código acima para validar o problema que estou enfrentando é o número de telefone e e-mail id validação única validação está trabalhando, por exemplo, eu comentar a validação número de telefone e-mail id está funcionando corretamente, se eu comentar o e-mail número de telefone id validação está funcionando se usar o tanto de validação não o seu trabalho .

---

Top 5 Responder

1Shabbir Dhangot @

Para Valid 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;
}

Para Valid Móvel Você precisa considerar de 7 dígitos para 13 dígitos, porque alguns países têm número de celular de 7 dígitos . Também não podemos verificar como número de celular deve começa com 9 ou 8 ou nada ..

Para número de celular que eu usei esta esta Função

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 @

Você deve retornar false se não é válido então o tipo de retorno função deve ser verdade

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 @

Use http://developer.android.com/reference/java/util/regex/Pattern.html pacote no Android para coincidir com a validação de entrada de e-mail e telefone

Do like

Pattern
4Akki @

Try this

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

Android tem http://developer.android.com/reference/android/util/Patterns.html por e-mail, número de telefone, etc, que você pode usar se você está construindo para Android nível API 8 e acima.

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

}