如何在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? [复制]的主要内容,如果未能解决你的问题,请参考以下文章