Подтвердить что ты не робот

Проверка электронной почты Android EmailText Validation

У меня есть это определение EditText:

<EditText 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent"
     android:inputType="textEmailAddress" 
     android:id="@+id/EmailText"/>

Обратите внимание, что в EditText указан тип ввода, определенный спецификацией адреса электронной почты. Есть ли у Android что-либо встроенное для проверки типа ввода адреса электронной почты, или все это нужно сделать вручную? Это позволяет мне вводить неверные данные, поэтому мне любопытно, как это сделать.

Спасибо.

4b9b3361

Ответ 1

Здесь При указании типа ввода электронной почты вы устанавливаете клавиатуру типа электронной почты "@" и ".". ключевое слово будет отображаться на клавиатуре.

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

public boolean isEmailValid(String email)
    {
         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 = email;

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

     if(matcher.matches())
        return true;
     else
        return false;
}

если эта функция возвращает значение true, тогда ваш адрес электронной почты будет действителен иначе

Ответ 2

Если вы используете API 8 или выше, вы можете использовать легкодоступный класс 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 из эту ссылку

Ответ 3

несколько лучших ответов вы можете найти здесь и здесь (кредиты оригинальным авторам)

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

или пользовательская библиотека проверки https://github.com/vekexasia/android-form-edittext  проверьте вторую ссылку для получения дополнительной информации и предварительного просмотра (regexp, numeric, alpha, alphaNumeric, email, creditCard, phone, domainName, ipAddress, webUrl)

Приветствия