Проверка адреса электронной почты в Android на EditText [дубликат]
этот вопрос уже есть ответ здесь:
- Как я должен проверить адрес электронной почты? 31 ответы
как мы можем выполнить Email Validation
on edittext
in android
? Я прошел через google & SO, но я не нашел простого способа проверить его.
9 ответов:
public static boolean isValidEmail(CharSequence target) { return (!TextUtils.isEmpty(target) && Patterns.EMAIL_ADDRESS.matcher(target).matches()); }
Edit:: он будет работать на Android 2.2+ и далее !! Изменить: добавлено отсутствует;
для проверки электронной почты у нас есть много способов,но простой и легкий способ-это два метода.
1- используя
EditText(....).addTextChangedListener
который продолжает срабатывать на каждом входе вEditText box
т. е. email_id является недопустимым или допустимым/** * Email Validation ex:- tech@end.com */ final EditText emailValidate = (EditText)findViewById(R.id.textMessage); final TextView textView = (TextView)findViewById(R.id.text); String email = emailValidate.getText().toString().trim(); String emailPattern = "[a-zA-Z0-9._-]+@[a-z]+\.+[a-z]+"; emailValidate .addTextChangedListener(new TextWatcher() { public void afterTextChanged(Editable s) { if (email.matches(emailPattern) && s.length() > 0) { Toast.makeText(getApplicationContext(),"valid email address",Toast.LENGTH_SHORT).show(); // or textView.setText("valid email"); } else { Toast.makeText(getApplicationContext(),"Invalid email address",Toast.LENGTH_SHORT).show(); //or textView.setText("invalid email"); } } public void beforeTextChanged(CharSequence s, int start, int count, int after) { // other stuffs } public void onTextChanged(CharSequence s, int start, int before, int count) { // other stuffs } });
2- самый простой метод с помощью
if-else
состояние. Возьмите строку EditText box с помощью getText () и сравните с шаблоном, предоставленным для электронной почты. Если шаблон не соответствует или не соответствует, onClick of button toast a сообщение. Он не будет срабатывать на каждом входе символа в поле EditText . простой пример показан ниже.final EditText emailValidate = (EditText)findViewById(R.id.textMessage); final TextView textView = (TextView)findViewById(R.id.text); String email = emailValidate.getText().toString().trim(); String emailPattern = "[a-zA-Z0-9._-]+@[a-z]+\.+[a-z]+"; // onClick of button perform this simplest code. if (email.matches(emailPattern)) { Toast.makeText(getApplicationContext(),"valid email address",Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getApplicationContext(),"Invalid email address", Toast.LENGTH_SHORT).show(); }
Я сделал так:
добавить метод до проверить, является лиадрес электронной почты и действительный или не:
private boolean isValidEmaillId(String email){ return Pattern.compile("^(([\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})$").matcher(email).matches(); }
теперь проверьте с строка на EditText:
if(isValidEmaillId(edtEmailId.getText().toString().trim())){ Toast.makeText(getApplicationContext(), "Valid Email Address.", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(getApplicationContext(), "InValid Email Address.", Toast.LENGTH_SHORT).show(); }
сделал
использовать этот метод для проверки формата электронной почты. Передайте электронную почту как строку, она возвращает true, если формат правильный в противном случае false.
/** * validate your email address format. Ex-akhi@mani.com */ public boolean emailValidator(String email) { Pattern pattern; Matcher matcher; final 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(); }
попробуйте это:
if (!emailRegistration.matches("[a-zA-Z0-9._-]+@[a-z]+.[a-z]+")) { editTextEmail.setError("Invalid Email Address"); }
используйте этот метод для проверки электронной почты : -
public static boolean isEditTextContainEmail(EditText argEditText) { try { Pattern pattern = Pattern.compile("^[_A-Za-z0-9-]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$"); Matcher matcher = pattern.matcher(argEditText.getText()); return matcher.matches(); } catch (Exception e) { e.printStackTrace(); return false; } }
Дайте мне знать, если у вас есть какие-либо вопросы ?
public static boolean isEmailValid(String email) { boolean isValid = false; String expression = "^[\w\.-]+@([\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; }
Это пример метода, который я создал для проверки адресов электронной почты , если переданный строковый параметр является допустимым адресом электронной почты, он возвращает true, иначе возвращается false.
private boolean validateEmailAddress(String emailAddress){ String expression="^[\w\-]([\.\w])+[\w]+@([\w\-]+\.)+[A-Z]{2,4}$"; CharSequence inputStr = emailAddress; Pattern pattern = Pattern.compile(expression,Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(inputStr); return matcher.matches(); }
попробуй такое
public static final 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}" + ")+" );
и в tne редактировать текст
final String emailText = email.getText().toString(); EMAIL_ADDRESS_PATTERN.matcher(emailText).matches()