编辑电子邮件的文本字段不验证电子邮件地址?

Posted

技术标签:

【中文标题】编辑电子邮件的文本字段不验证电子邮件地址?【英文标题】: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" 确实有效...

【问题讨论】:

【参考方案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));
                
            
        

【讨论】:

以上是关于编辑电子邮件的文本字段不验证电子邮件地址?的主要内容,如果未能解决你的问题,请参考以下文章

jquery验证文本输入数组仅验证第一个字段[重复]

为啥我的“电子邮件地址”内容类型的文本字段不建议电子邮件? [关闭]

如果我的电子邮件地址格式不正确,如何让我的按钮不通过?

如何在接受多个电子邮件地址的字段上实现 MVC 不显眼的验证

如何在 Devexpress 控件的富文本编辑器中添加自定义邮件合并字段

在进行第二个活动之前验证电子邮件地址