编辑电子邮件的文本字段不验证电子邮件地址?
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));
【讨论】:
以上是关于编辑电子邮件的文本字段不验证电子邮件地址?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的“电子邮件地址”内容类型的文本字段不建议电子邮件? [关闭]
如何在接受多个电子邮件地址的字段上实现 MVC 不显眼的验证