2016-08-30 2 views
0

Я внедрил проверку электронной почты в своем приложении, но проблема в том, что приложение принимало часть локального домена более чем 64 символа, и когда я пишу ..nnn .. @ gmail.com приложение принимало это также, а также в соответствии с RFC 3696 спецификация #section 3, period (".") не может использоваться для запуска или завершения локальной части, а также не может появиться два или более последовательных периода.Как проверить идентификатор электронной почты в android?

Пожалуйста, помогите мне

private boolean isValidEmail(String email) {// validation for email Id 
    boolean isValid = false; 
    String expression = "^[\\w\\.-][email protected]([\\w\\-]+\\.)+[A-Z]{2,255}$"; 

    Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE); 
    Matcher matcher = pattern.matcher(email); 
    if (matcher.matches()) { 
     isValid = true; 

    } 
    return isValid; 
} 
+0

Мне нужно написать локальная часть не должна превышать более 64 символов – Raghav

+0

Попробуйте эту удивительную библиотеку проверки https://github.com/thyrlian/AwesomeValidation –

ответ

1

попробовать это,

String expression = "[a-zA-Z0-9._-][email protected][a-z]+\\.+[a-z]+"; 
+0

, но когда я пишу ..aa .. @ gmail.com. com app принимал – Raghav

1

Андроида SDK имеет встроенный в регулярное выражение для проверки сообщений электронной почты.

Patterns JavaDoc

Matcher matcher = Patterns.EMAIL_ADDRESS.matcher(email); 
return matcher.matches(); 
1
public final static boolean isValidEmail(CharSequence target) { 
    if (TextUtils.isEmpty(target)) { 
     return false; 
    } else { 
     return android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches(); 
    } 
} 
1

попробовать это один

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

public class EmailValidation { 
private Pattern pattern; 
private Matcher matcher; 

private static final String EMAIL_PATTERN = 
    "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@" 
    + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"; 

public EmailValidation() { 
    pattern = Pattern.compile(EMAIL_PATTERN); 
} 

public boolean isValidate(final String hex) { 
    matcher = pattern.matcher(hex); 
    return matcher.matches(); 
    } 
} 
+0

, но когда я пишу .. и 64 символа локального домена, это было за исключением – Raghav

+0

Это работает :) –

1

Я хотел бы предложить простое решение среди все этого ответа

public static boolean isEmail(String email){ 
    return android.util.Patterns.EMAIL_ADDRESS.matcher(inputData.trim()).matches() 
} 

Читать this документацию о шаблонах.

2

попробуйте этот код. Возвращает true, если адрес электронной почты действителен.

android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches(); 
Смежные вопросы