在EditText上的Android中的电子邮件地址验证

这个问题在这里已有答案:

我该如何验证电子邮件地址?                                     31个答案

我们怎样才能在edittext edittext上执行Email Validation? 我已经通过谷歌& 所以,但我没有找到一种简单的方法来验证它。

9个解决方案

535 votes

public static boolean isValidEmail(CharSequence target) {

return (!TextUtils.isEmpty(target) && Patterns.EMAIL_ADDRESS.matcher(target).matches());

}

编辑::它将在Android 2.2及更高版本上运行!!编辑:添加缺失;

user1737884 answered 2019-04-30T03:54:28Z

59 votes

要执行电子邮件验证,我们有很多方法,但简单& 最简单的方法是两种方法。

1-使用if-else继续触发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条件的最简单方法。 使用getText()获取EditText框字符串,并与为电子邮件提供的模式进行比较。 如果模式不匹配或发生疼痛,则onClick按钮会覆盖一条消息。 它不会在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();

}

Rahul Baradia answered 2019-04-30T03:55:07Z

29 votes

我是这样做的:

添加此方法以检查电子邮件地址是否有效:

private boolean isValidEmailId(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的String:

if(isValidEmailId(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();

}

完成

Hiren Patel answered 2019-04-30T03:55:41Z

28 votes

使用此方法验证您的电子邮件格式。 将电子邮件作为字符串传递,如果格式正确则返回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();

}

Akhilesh Mani answered 2019-04-30T03:56:06Z

9 votes

试试这个:

if (!emailRegistration.matches("[a-zA-Z0-9._-]+@[a-z]+.[a-z]+")) {

editTextEmail.setError("Invalid Email Address");

}

Jay Thakkar answered 2019-04-30T03:56:26Z

7 votes

使用此方法验证电子邮件: -

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;

}

}

如果您有任何疑问,请告诉我?

Gaurav Arora answered 2019-04-30T03:56:57Z

6 votes

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;

}

NagarjunaReddy answered 2019-04-30T03:57:14Z

5 votes

这是我为验证电子邮件地址而创建的示例方法,如果传递的字符串参数是有效的电子邮件地址,则返回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();

}

AppMobiGurmeet answered 2019-04-30T03:57:39Z

4 votes

试试这个

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}" +

")+"

);

并在edittext中

final String emailText = email.getText().toString();

EMAIL_ADDRESS_PATTERN.matcher(emailText).matches()

Naveen Kumar answered 2019-04-30T03:58:05Z

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐