Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中验证电子邮件Id?_Android - Fatal编程技术网

如何在android中验证电子邮件Id?

如何在android中验证电子邮件Id?,android,Android,我已经在我的应用程序中实施了电子邮件验证,但问题是,应用程序正在接受超过64个字符的本地域部分,当我写入..nnn..@gmail.com时,应用程序也在接受这一点,并且根据RFC 3696规范,第3节,句号(“.”)不能用于开始或结束本地部分,也不可能出现两个或两个以上的连续周期 请帮帮我 private boolean isValidEmail(String email) {// validation for email Id boolean isValid = false;

我已经在我的应用程序中实施了电子邮件验证,但问题是,应用程序正在接受超过64个字符的本地域部分,当我写入..nnn..@gmail.com时,应用程序也在接受这一点,并且根据RFC 3696规范,第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;
}
试试这个

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

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


我建议您签出这个库进行android客户端验证

试试这个

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

我想在所有这些答案中提出一个简单的解决方案

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

阅读有关模式的文档。

请尝试此代码。如果电子邮件有效,则返回true

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

但是当我写的时候..aa..@gmail.com应用程序正在接受但是当我写的时候。。和64个字符的本地域部分,这是例外,这是工作:)我需要写的本地部分不超过64个字符这个可怕的验证库这个答案应该有更多的选票。它是专门针对Android的,不会重复与其他版本相同的答案。
public static boolean isEmail(String email){
  return android.util.Patterns.EMAIL_ADDRESS.matcher(inputData.trim()).matches()
}
android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();