【问题标题】:Edit Text Field for Email isn't validating an email address?编辑电子邮件的文本字段不验证电子邮件地址?
【发布时间】:2011-11-15 21:08:00
【问题描述】:

为什么电子邮件的默认 EditText 不验证电子邮件地址?因为 EditText 字段适用于数字输入。我知道我们可以使用 java.util.regex.Matcher 和 java.util.regex.Pattern 来验证它number 有什么默认函数吗?

inputtype="textEmailAddress" 无法正常工作,因为 inputType="number" 确实有效...

【问题讨论】:

    标签: android


    【解决方案1】:

    Editext 字段不会仅通过将输入法设置为电子邮件类型来验证您的电子邮件。

    您需要自己验证。

    试试这个:

    Android: are there any good solutions how to validate Editboxes

    email validation android

    【讨论】:

    • 你是 Rokin Vineet...但我知道你所说的这个答案:P
    • 您可以根据需要修改正则表达式。添加您的字符,您想要包含的特殊字符....或者您可以删除您认为不应该存在的字符......
    【解决方案2】:

    请使用下面的代码,它将解决您的问题。

    public static boolean isEmailValid(String email) {
        boolean isValid = false;
    
        String expression = "^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";
        CharSequence inputStr = email;
    
        Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
        Matcher matcher = pattern.matcher(inputStr);
        if (matcher.matches()) {
            isValid = true;
        }
        return isValid;
    }
    

    有关更多信息,请参阅下面的 Stack Overflow 链接。

    Email Validation

    【讨论】:

      【解决方案3】:

      您可以在 android 中通过椭圆形.jar 文件非常轻松地进行任何类型的验证。 OVal 是一个实用且可扩展的通用验证框架,适用于任何类型的 Java 对象。

      点击此链接:http://oval.sourceforge.net/userguide.html

      你可以从这里下载这个:http://oval.sourceforge.net/userguide.html#download

      您可以通过在变量中设置标签来使用验证

      public class Something{
      
          @NotEmpty  //not empty validation
          @Email     //email validation
          @SerializedName("emailAddress")
          private String emailAddress;
      }
      
         private void checkValidation() {
              Something forgotpass.setEmailAddress(LoginActivity.this.dialog_email.getText().toString());
              Validator validator = new Validator();
              //collect the constraint violations
              List<ConstraintViolation> violations = validator.validate(forgotpass);
              if(violations.size()>0){
                  for (ConstraintViolation cv : violations){
                      if(cv.getMessage().contains("emailAddress")){
                          dialog_email.setError(ValidationMessage.formattedError(cv.getMessage(), forgotpass));
                      }
                  }
              }
      }
      

      【讨论】:

        猜你喜欢
        • 2014-06-12
        • 1970-01-01
        • 2011-05-15
        • 2012-04-08
        • 2018-03-13
        • 2011-09-02
        • 2013-02-20
        • 2014-03-12
        • 1970-01-01
        相关资源
        最近更新 更多