编辑文本中的电子邮件验证



我想验证 EditText 中引入的电子邮件,这是我已有的代码:

public static boolean isValidEmail(String str) {
    boolean isValid = false;
    String expression = "^[_A-Za-z0-9-]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$";
    CharSequence inputStr = str;
    Pattern pattern = Pattern.compile(expression);
    Matcher matcher = pattern.matcher(inputStr);
    if (matcher.matches()) {
        isValid = true;
    }
    return isValid;
}

问题是,当我在电子邮件ID开头使用_和-这些字符时,没有显示错误,但是当我使用任何其他字符时,会显示错误。

现在我希望当我在电子邮件ID开头使用任何特殊字符时,必须显示错误。 电子邮件 ID 开头不应允许使用特殊字符。

我该怎么办..?

用于验证 android sdk 中的电子邮件地址的模式是

    public static final Pattern EMAIL_ADDRESS
        = 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}" +
            ")+"
        );

您可以通过以下方式访问它:

 android.util.Patterns.EMAIL_ADDRESS

试试这个简单的代码:

    public static boolean validateEmailAddress(String emailAddress) {    
        regexPattern = Pattern .compile("^[(a-zA-Z-0-9-\_\+\.)]+@[(a-z-A-z)]+\.[(a-zA-z)]{2,3}$");
        regMatcher = regexPattern.matcher(emailAddress);
        if (regMatcher.matches())
            {
            return true;
        } else {
            return false;
        }
      }

简单地说,您可以创建一个方法并在接受输入之前对其进行检查。无需手动检查电子邮件输入字符 android 定义了所有这些数据类型,您只需要调用它例

public static boolean isEmailValid(CharSequence email)
    { 
        return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches() ; 
    } 

然后在oncreate上,或者在按钮等内,就像这样称呼它

 EditText et = (EditText)findViewbyid(R.id.email) ;
 String em = et.getText().toString() ;
 if(!Validating.isEmailValid(em))
      {
         et.setHint("use this format username@abc.com") ;
          return;
      } 

相关内容

  • 没有找到相关文章

最新更新