Как проверить, что текст редактирования текста является адресом электронной почты или нет? - программирование
Подтвердить что ты не робот

Как проверить, что текст редактирования текста является адресом электронной почты или нет?

как проверить текст edittext является адрес электронной почты или нет, не используя javascript и регулярное выражение? Здесь я использовал inputtype="textEmailAddress", это работает, но сообщение об ошибке не отображается.

4b9b3361

Ответ 1

/**
 * method is used for checking valid email id format.
 * 
 * @param email
 * @return boolean true for valid false for invalid
 */
public static boolean isEmailValid(String email) {
    String expression = "^[\\w\\.-][email protected]([\\w\\-]+\\.)+[A-Z]{2,4}$";
    Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher(email);
    return matcher.matches();
}

Передайте текстовую строку редактирования в этой функции.

для правильной проверки электронной почты вам нужна аутентификация на стороне сервера


Примечание теперь в Android есть встроенный метод, см. ответы ниже.

Ответ 2

На Android 2. 2+ используйте это:

boolean isEmailValid(CharSequence email) {
   return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
}

например:

EditText emailid = (EditText) loginView.findViewById(R.id.login_email);
String getEmailId = emailid.getText().toString();

// Check if email id is valid or not
       if (!isEmailValid(getEmailId)){
        new CustomToast().Show_Toast(getActivity(), loginView,
                "Your Email Id is Invalid.");
 }

Ответ 3

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

Текущий, когда я пишу, изначально поддерживается (через xml-атрибуты):

  • regexp: для пользовательского регулярного выражения
  • число: только для числового поля
  • alpha: для поля только альфа
  • alphaNumeric: угадайте, что?
  • электронная почта: проверяет правильность поля в поле
  • creditCard: проверяет, что поле содержит действительную кредитную карту с использованием алгоритма Луна
  • телефон: проверяет, что поле содержит действительный номер телефона
  • domainName: проверяет, что это поле содержит допустимое имя домена (всегда проходит тест на уровне API < 8)
  • ipAddress: проверяет, что поле содержит действительный IP-адрес webUrl: проверяет, что поле содержит действительный url (всегда проходит тест на уровне API < 8)
  • nocheck: он ничего не проверяет. (По умолчанию)

Вы можете проверить это здесь: https://github.com/vekexasia/android-form-edittext

Надеюсь, вам понравится:)

На странице, которую я связал, вы также сможете найти пример проверки подлинности электронной почты. Здесь я скопирую условный фрагмент:

<com.andreabaccega.widget.FormEditText
       style="@android:style/Widget.EditText"
       whatever:test="email"
       android:id="@+id/et_email"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:hint="@string/hint_email"
       android:inputType="textEmailAddress"
       />  

Существует также тестовое приложение, демонстрирующее возможности библиотеки.

Это скриншот приложения, проверяющего поле электронной почты.

email validation done thorugh xml+library

Ответ 4

Следуйте приведенным ниже шагам.

Шаг 1:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <EditText
        android:id="@+id/editText_email"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_below="@+id/textView_email"
        android:layout_marginTop="40dp"
        android:hint="Email Adderess"
        android:inputType="textEmailAddress" />

    <TextView
        android:id="@+id/textView_email"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="30dp"
        android:text="Email Validation Example" />

</RelativeLayout>

Шаг 2:

import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;

Шаг 3:

public class MainActivity extends Activity {

private EditText email;

private String valid_email;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    initilizeUI();
}

/**
 * This method is used to initialize UI Components
 */
private void initilizeUI() {
    // TODO Auto-generated method stub

    email = (EditText) findViewById(R.id.editText_email);

    email.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
            // TODO Auto-generated method stub

        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            // TODO Auto-generated method stub

        }

        @Override
        public void afterTextChanged(Editable s) {
            // TODO Auto-generated method stub

            // TODO Auto-generated method stub
            Is_Valid_Email(email); // pass your EditText Obj here.
        }

        public void Is_Valid_Email(EditText edt) {
            if (edt.getText().toString() == null) {
                edt.setError("Invalid Email Address");
                valid_email = null;
            } else if (isEmailValid(edt.getText().toString()) == false) {
                edt.setError("Invalid Email Address");
                valid_email = null;
            } else {
                valid_email = edt.getText().toString();
            }
        }

        boolean isEmailValid(CharSequence email) {
            return android.util.Patterns.EMAIL_ADDRESS.matcher(email)
                    .matches();
        } // end of TextWatcher (email)
    });

}

}

Ответ 5

Как упоминалось в одном из ответов, вы можете использовать класс Patterns как Patterns ниже:

public final static boolean isValidEmail(CharSequence target) {
    if (target == null) 
        return false;

    return android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches();
}

Случайно, если вы даже поддерживаете уровень API ниже 8, вы можете просто скопировать файл Patterns.java в свой проект и сослаться на него. Вы можете получить исходный код для Patterns.java по этой ссылке

Ответ 6

здесь электронная почта - это ваш адрес электронной почты.

  public boolean validateEmail(String email) {

    Pattern pattern;
    Matcher matcher;
    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();

    }

Ответ 7

Следующий код должен быть полезен для вас.

String email;
check.setOnClickListener(new OnClickListener() {


                public void onClick(View arg0) {

                    checkEmail(email);
                    if (checkMail) {
                        System.out.println("Valid mail Id");
                    }
                }
            });

        }
    }

    public static boolean checkEmail(String email) {

        Pattern EMAIL_ADDRESS_PATTERN = Pattern
                .compile("[a-zA-Z0-9+._%-+]{1,256}" + "@"
                        + "[a-zA-Z0-9][a-zA-Z0-9-]{0,64}" + "(" + "."
                        + "[a-zA-Z0-9][a-zA-Z0-9-]{0,25}" + ")+");
        return EMAIL_ADDRESS_PATTERN.matcher(email).matches();
    }

Ответ 8

Apache Commons Validator может использоваться, как указано в других ответах.

Шаг: 1) Загрузите файл jar из здесь

Шаг: 2) Добавьте его в свои проекты libs

Импорт:

import org.apache.commons.validator.routines.EmailValidator;

Код:

String email = "[email protected]";
boolean valid = EmailValidator.getInstance().isValid(email);

и разрешить локальные адреса::

boolean allowLocal = true;
boolean valid = EmailValidator.getInstance(allowLocal).isValid(email);

Ответ 9

Простой метод

    private boolean isValidEmail(String email)
{
    String emailRegex ="^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
    if(email.matches(emailRegex))
    {
        return true;
    }
    return false;
}

Ответ 10

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

    String expression = "^(([\\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})$";
    // "^[\\w\\.-][email protected]([\\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;
}

Ответ 11

   I Hope this code is beneficial for you

    public class Register extends Activity 
      {
       EditText FirstName, PhoneNo, EmailId,weight;
       Button Register;
       private static final Pattern EMAIL_PATTERN = Pattern
        .compile("^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");


   private static final Pattern USERFIRSTNAME_PATTERN = Pattern
        .compile("[a-zA-Z0-9]{1,250}");
   private static final Pattern PHONE_PATTERN = Pattern
        .compile("[a-zA-Z0-9]{1,250}");
       @Override
   public void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.register);


        Register=(Button) findViewById(R.id.register);

        FirstName=(EditText)findViewById(R.id.person_firstname);

            PhoneNo =(EditText)findViewById(R.id.phone_no);
            EmailId=(EditText)findViewById(R.id.email_id);
            weight=(EditText) findViewById(R.id.weight);

         Register.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                sFirstName= FirstName.getText().toString();
                 sPhoneNo= PhoneNo.getText().toString();
                sEmailId= EmailId.getText().toString();
                sweight= weight.getText().toString(); 

                if(sFirstName.equals("")||sPhoneNo.equals("")||sEmailId.equals("")||sweight.equals(""))
                {
                    if ((!CheckUsername(sFirstName))) 
                     {
                     Toast.makeText(Register.this, "FirstName can not be null",Toast.LENGTH_LONG).show();
                     }
                   else if ((!Checkphoneno(sPhoneNo)))
                       {
                    Toast.makeText(Register.this, "ENTER VALID mobile no ",Toast.LENGTH_LONG).show();
                       }
                    else if ((!CheckEmail(sEmailId)))
                       {
                      Toast.makeText(Register.this, "ENTER VALID EMAIL ID",Toast.LENGTH_LONG).show();
                       }
                    else if ((!Checkweight(sweight)))
                      {
                    Toast.makeText(Register.this, "ENTER Weight in kg",Toast.LENGTH_LONG).show();
                      }
               }

            }
                private boolean CheckEmail(String sEmailId) {

                    return EMAIL_PATTERN.matcher(sEmailId).matches();
                }



                private boolean CheckUsername(String sFirstName) {

                    return USERFIRSTNAME_PATTERN.matcher(sFirstName).matches();
                }
                private boolean Checkphoneno(String sPhoneNo) {

                    return PHONE_PATTERN.matcher(sPhoneNo).matches();
                }
                private boolean Checkweight(String sweight) {

                    return Weight_PATTERN.matcher(sweight).matches();
                }


        });

Ответ 12

для проверки подлинности электронной почты попробуйте это.

public boolean checkemail(String email)
{

    Pattern pattern = Pattern.compile("[email protected]+\\.[a-z]+");
    Matcher matcher = pattern.matcher(email);
    return matcher.matches();

}

Ответ 13

Вы можете проверить это с помощью регулярного выражения

    public boolean isValid(String strEmail)
    {
        pattern = Pattern.compile("^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");
            matcher = pattern.matcher(strEmail);

        if (strEmail.isEmpty()) {
           return false;
        } else if (!matcher.matches()) {
            return false;
        }
        else
        {
        return true;
        }
     }

Ответ 15

С android.util.Patterns и Kotlin это очень просто. Однострочная функция, которая возвращает логическое значение.

fun validateEmail(email: String) = Patterns.EMAIL_ADDRESS.matcher(email)

Ответ 16

В вашем случае вы можете использовать android.util.Patterns package.

EditText email = (EditText)findViewById(R.id.user_email);

if(Patterns.EMAIL_ADDRESS.matcher(email.getText().toString()).matches())
    Toast.makeText(this, "Email is VALID.", Toast.LENGTH_SHORT).show();
else
    Toast.makeText(this, "Email is INVALID.", Toast.LENGTH_SHORT).show();