Проверка электронной почты только тогда, когда поле не является пустым в Android

java android android-edittext email-validation

835 просмотра

7 ответа

180 Репутация автора

Проверяйте формат электронной почты только в том случае, если EditTextв Android оно не пустое. И если поле пусто, проверка не должна быть проверена. Я не нашел никакого решения в этом сценарии, которое было бы полезно для меня.

Автор: Adi Источник Размещён: 19.07.2016 05:51

Ответы (7)


0 плюса

369 Репутация автора

Используйте этот метод для проверки правильности шаблона электронной почты или нет

public static boolean isEmailValid(CharSequence email) {
        return Patterns.EMAIL_ADDRESS.matcher(email).matches();
    }
Автор: Nitesh Pareek Размещён: 19.07.2016 05:55

1 плюс

480 Репутация автора

Решение

Попробуйте этот код

final EditText emailEditTxt= (EditText)findViewById(R.id.text); 

String emailStr = emailEditTxt.getText().toString().trim();

if(emailStr!=null)

if(emailStr.length()>=1){

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


if (emailStr .matches(emailPattern))
{
Toast.makeText(getApplicationContext(),"valid email address",Toast.LENGTH_SHORT).show();
}
else 
{
Toast.makeText(getApplicationContext(),"Invalid email address", Toast.LENGTH_SHORT).show();
}
}
Автор: Android Surya Размещён: 19.07.2016 05:55

0 плюса

2772 Репутация автора

подтвердить адрес электронной почты

private boolean validateEmail() {
 if (!edemail.getText().toString().trim().isEmpty()&&!ValidationMethod.emailValidation(edemail.getText().toString()))
    {

        input_layout_email.setError("Invalid Email"); // Your textInput Layout or other set your error on edittext email
        requestFocus(edemail);
        return false;
    }

    else {
        input_layout_email.setErrorEnabled(false);
    }

    return true;
}

   // if you need requestfocus other wise remove
 private void requestFocus(View view) {
    if (view.requestFocus()) {
        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
    }
}

ValidationMethod.java // положить в ваш проект

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ValidationMethod {

    static Matcher m;
    static String emailExpression = "^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{2,20}$";
    static Pattern emailPattern = Pattern.compile(emailExpression, Pattern.CASE_INSENSITIVE);
    static String passwordExpression ="((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*\\W).{8,20})";
    static Pattern passwordPattern=Pattern.compile(passwordExpression);

    public static boolean emailValidation(String s)
    {
        if( s == null)
        {
            return false; 
        }
        else
        {
            m = emailPattern.matcher(s);
            return m.matches();
        }
    }

    public static boolean passwordValidation(String s)
    {
        if( s == null)
        {
            return false; 
        }
        else
        {
            m = passwordPattern.matcher(s);
            return m.matches();
        }
    }

    public static boolean emailValidation2(String s)
    {
        m = emailPattern.matcher(s);
        return m.matches();
    }
}
Автор: Arjun saini Размещён: 19.07.2016 05:56

1 плюс

2701 Репутация автора

Попробуй это..

boolean flag;
String pass = editText.getText().toString().trim();
if(!pass.equals("")) {
    flag = isEmailValid(pass);
}

public static boolean isEmailValid(CharSequence email) {
    return Patterns.EMAIL_ADDRESS.matcher(email).matches();
}

и использовать flagзначение для дальнейшего использования

Автор: Sanoop Размещён: 19.07.2016 05:57

0 плюса

67 Репутация автора

попробуй это

<form>
    <lable for="userEmail">Email : </label>
    <input type="email" id="userEmail" placeholder="johndoe@example.com" required="required">
<form>
Автор: Sachithra Dilshan Размещён: 19.07.2016 05:59

0 плюса

357 Репутация автора

Допустим, вы объявили EditText следующим образом.

EditText emailField;

тогда в вашем методе

emailField = (EditText)view.getViewById(R.id.NAME_OF_FIELD_IN_XML);
if(!TextUtils.isBlank(emailField.getText().toString())){
     //validate your email address
}

Используйте ссылку ниже для проверки кода электронной почты.

http://stackoverflow.com/questions/12947620/email-address-validation-in-android-on-edittext
Автор: Dishant Anand Размещён: 19.07.2016 05:59

0 плюса

906 Репутация автора

Вы можете попробовать это для проверки.

    public boolean Email_validation(String CorpId)
{
    String regExpn =
            "^(([\\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})$";

    CharSequence inputStr = CorpId;

    Pattern pattern = Pattern.compile(regExpn, Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher(inputStr);

    if(matcher.matches())
        return true;
    else
        return false;
}
Автор: amit pandya Размещён: 26.10.2017 09:51
Вопросы из категории :
32x32