Android валидаторы электронной почты, не получат письмо c .uk - PullRequest
0 голосов
/ 05 августа 2020

Для регистрации пользователя я хочу, чтобы он мог использовать адрес электронной почты студента, заканчивающийся на .a c .uk, но попробовал несколько строк emailCharacter, но продолжает возвращать неверный адрес электронной почты.

private Boolean validateEmail() {
    String entry = regEmail.getEditText().getText().toString();
    //Characters accepted for email address
    String emailCharacters =  "[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}" +
            ")+";




   // "[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]";
    //If empty display error
    if (entry.isEmpty()) {
        regEmail.setError("Email field cannot be empty");
        return false;
        //If email address does not follow constraints
    } else if (!entry.matches(emailCharacters)) {
        regEmail.setError("Invalid email address");
        return false;

ОБНОВЛЕНИЕ:

    //Validation for email
    private Boolean validateEmail() {
        String entry = regEmail.getEditText().getText().toString();
//Characters accepted for email address
            String emailCharacters =  "[a-zA-Z0-9+._%-+]{1,256}" +
                    "@" +
                    "[a-zA-Z0-9][a-zA-Z0-9-]{0,64}" +
                    "(" +
                    "." +
                    "[a-zA-Z0-9]{0,25}" +
                    "."+
                    "[a-zA-Z0-9]{0,25}" +     // add these item more in your regex
                    ")+";

Ответы [ 2 ]

1 голос
/ 05 августа 2020

Измените свое регулярное выражение на это:

Чтобы попробовать ваше регулярное выражение, используйте это https://regex101.com/

  //regex for conditions .ac.uk  
 [a-zA-Z0-9+._%-+]{1,256}@[a-zA-Z0-9]{0,64}(.[a-zA-Z0-9]{0,25}.[a-zA-Z0-9]{0,25})    


private Boolean validateEmail() {
String entry = regEmail.getEditText().getText().toString();
//Characters accepted for email address
String emailCharacters =  "[a-zA-Z0-9+._%-+]{1,256}" +
        "@" +
        "[a-zA-Z0-9][a-zA-Z0-9-]{0,64}" +
        "(" +
        "." +
        "[a-zA-Z0-9]{0,25}" +
        "."+                   
        "[a-zA-Z0-9]{0,25}" +     // add these item more in your regex
        ")+";




  // "[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]";
//If empty display error
if (entry.isEmpty()) {
    regEmail.setError("Email field cannot be empty");
    return false;
    //If email address does not follow constraints
} else if (!entry.matches(emailCharacters)) {
    regEmail.setError("Invalid email address");
    return false;
} else if(entry.matches(emailCharacters))
   return true;
}
0 голосов
/ 05 августа 2020

Попробуйте использовать android.util.Patterns.EMAIL_ADDRESS.matcher(entry).matches()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...