Android 电子邮件验证不起作用

Posted

技术标签:

【中文标题】Android 电子邮件验证不起作用【英文标题】:Android email validation doesn't work 【发布时间】:2017-05-27 16:31:53 【问题描述】:

我是 android 编程和 Java 的新手,很难理解。

我有一个用户可以输入的电子邮件的 editText 字段。我得到了这个输入:

final EditText loginEmail = (EditText) findViewById(R.id.loginEmail);

不,我正在检查此字段是否为空。如果:

if (loginEmail.getText().toString().length() == 0) 
  loginEmail.setError("Please enter a E-Mail Address!");
 else if () 
  loginEmail.setError("Invalid E-Mail Address!");
 else 
  //Do a thing if is valid...  

在第一个if之后,我想检查输入是否是有效的电子邮件,但不知道如何处理。

我已经用这篇文章的答案进行了尝试:Email Address Validation in Android on EditText

但是我不知道这个方法怎么用……

谢谢你帮助我!

【问题讨论】:

【参考方案1】:

使用:

if (!Patterns.EMAIL_ADDRESS.matcher(loginEmail.getText().toString()).matches())
    loginEmail.setError("Please enter a Valid E-Mail Address!");
else 
    //email is valid

【讨论】:

太棒了!谢谢哥们。我很高兴 如果有帮助,请考虑接受答案!快乐编码:) 是的,但我必须等到 10 分钟结束 ;) 我才能接受这个【参考方案2】:

将其他帖子中的方法添加到您的课程中。 然后使用这个:

String email = loginEmail.getText().toString();
if (email.isEmpty()) 
    loginEmail.setError("Please enter a E-Mail Address!");
 else if (!isValidEmail(email)) 
    loginEmail.setError("Invalid E-Mail Address!");
 else 
  // Do a thing if is valid...  

【讨论】:

另一个答案显示了捷径;我的展示了如何使用另一种方法,所以我暂时将其留在这里。【参考方案3】:

检查输入的文本是否为空并与电子邮件模式匹配。

String emailPattern = "[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]+";

String email = loginEmail.getText().toString();

if (email.isEmpty() && email.matches(emailPattern)) 
    loginEmail.setError("Please enter a E-Mail Address!");
 else 
    loginEmail.setError("Invalid E-Mail Address!"); 

【讨论】:

【参考方案4】:

试试这个,

String email_string = loginEmail.getText().toString();
if(!TextUtils.isEmpty(email_string) && android.util.Patterns.EMAIL_ADDRESS.matcher(email_string).matches()) 
    //valid emailID

【讨论】:

【参考方案5】:

工作!!!!

我们现在有简单的电子邮件模式匹配器

private static boolean isValidEmail(String email) 
        return !TextUtils.isEmpty(email) && android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
    

【讨论】:

【参考方案6】:

来源:这是 *** 答案之一的代码,用于使用 java 进行电子邮件验证。

public static boolean isEmailValid(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();
    

【讨论】:

【参考方案7】:

全局声明此字符串格式

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

现在匹配文本中的模式

if ((!email_a.getText().toString().trim().matches(EMAIL_PATTERN))) email_a.setError("Invalid email"); 享受编码:)

【讨论】:

以上是关于Android 电子邮件验证不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Javascript 电子邮件验证不起作用

调用 GenerateChangePhoneNumberTokenAsync() 后身份电子邮件验证不起作用

电子邮件验证在 MVC 中不起作用

ASP.NET MVC 客户端电子邮件验证不起作用

梨邮件和谷歌验证码不起作用

Kotlin Spring Boot 验证不起作用