14 ответов:
/** * 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\.-]+@([\w\-]+\.)+[A-Z]{2,4}$"; Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(email); return matcher.matches(); }передайте свою текстовую строку редактирования в этой функции .
для правильной проверки электронной почты вам нужна аутентификация на стороне сервера
Примечание теперь есть встроенный метод в Android, см. ответы ниже.
On Android 2.2+ use this: 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."); }
Я написал библиотеку, которая расширяет EditText, которая поддерживает изначально некоторые методы проверки и на самом деле очень гибкая.
текущий, как я пишу,изначально поддерживается (через атрибуты xml) методы проверки:
- и: для пользовательского регулярного выражения
- цифровой: только для числового поля
- Альфа: только для Альфы поле
- буквенно -: угадайте, что?
- почта: проверяет, что поле является допустимым email
- кредитная карта: проверяет, что поле содержит действительную кредитную карту с помощью алгоритма Luhn
- телефон: проверяет, что поле содержит действительный номер телефона
- имя_домена: проверяет, что поле содержит допустимое доменное имя ( всегда проходит тест в API Level
- ipAddress: проверяет, что поле содержит допустимый ip-адрес webUrl: проверяет, что поле содержит допустимый url (всегда проходит тест на уровне API
- 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" />существует также тестовое приложение, демонстрирующее возможности библиотеки.
Это скриншот приложения для проверки электронной почты.
пожалуйста, выполните следующие действия
Шаг 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) }); } }
как уже упоминалось в одном из ответов вы можете использовать
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С этой ссылке
здесь адрес электронной почты является адрес электронной почты.
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(); }
следующий код должен быть вам полезен.
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(); }
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);
простой способ
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; }
public static boolean isEmailValid(строка email) { логический 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\.-]+@([\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; }
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(); } });
для проверки электронной почты, попробуйте это.
public boolean checkemail(String email) { Pattern pattern = Pattern.compile(".+@.+\.[a-z]+"); Matcher matcher = pattern.matcher(email); return matcher.matches(); }
вы можете проверить это с помощью регулярного выражения
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; } }
private boolean isValidEmailID(String email) { String PATTERN = "^[_A-Za-z0-9-\+]+(\.[_A-Za-z0-9-]+)*@"+ "[A-Za-z0-9-]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$"; Pattern pattern = Pattern.compile(PATTERN); Matcher matcher = pattern.matcher(email); return matcher.matches(); }

Comments