如何在android中验证电子邮件ID? [复制]

Posted

技术标签:

【中文标题】如何在android中验证电子邮件ID? [复制]【英文标题】:How to validate Email Id in android? [duplicate] 【发布时间】:2017-01-06 12:10:51 【问题描述】:

我已经在我的应用程序中实现了电子邮件验证,但问题是应用程序接受超过 64 个字符的本地域部分,当我写 ..nnn..@gmail.com 时,应用程序也接受了这个,而且根据 RFC 3696 规范#section 3,句点(“.”)不能用于开始或结束本地部分,也不能出现两个或多个连续句点。

请帮帮我

private boolean isValidEmail(String email) // validation for email Id
    boolean isValid = false;
    String expression = "^[\\w\\.-]+@([\\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;

【问题讨论】:

我需要写local-part不超过64个字符 试试这个很棒的验证库github.com/thyrlian/AwesomeValidation 【参考方案1】:

试试这个代码。如果电子邮件有效,则返回 true。

android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();

【讨论】:

【参考方案2】:

我会在所有这些答案中建议一个简单的解决方案

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

阅读 this 有关模式的文档。

【讨论】:

【参考方案3】:

试试这个

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

【讨论】:

但是当我写 .. 和本地域部分的 64 个字符时它除外 这是有效的 :)【参考方案4】:

我建议您查看此库以进行 android 客户端验证

https://github.com/ragunathjawahar/android-saripaar

【讨论】:

【参考方案5】:
public final static boolean isValidEmail(CharSequence target) 
    if (TextUtils.isEmpty(target)) 
        return false;
     else 
        return android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches();
    

【讨论】:

【参考方案6】:

Android SDK 有一个用于检查电子邮件的内置正则表达式。

Patterns JavaDoc

Matcher matcher = Patterns.EMAIL_ADDRESS.matcher(email);
return matcher.matches();

【讨论】:

这个答案应该有更多的选票。它专门针对 Android,不会重复与其他答案相同的答案。【参考方案7】:

试试这个,

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

【讨论】:

但是当我写 ..aa..@gmail.com 应用程序正在接受

以上是关于如何在android中验证电子邮件ID? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android 后台发送电子邮件? [复制]

如何在 Android 应用中发送电子邮件? [复制]

如何将选定的电子邮件从 android 联系人获取到应用程序? [复制]

EditText 上的 Android 电子邮件验证

如何使用 php 验证电子邮件地址? [复制]

Android电子邮件EditText验证[重复]