【发布时间】:2017-09-06 09:47:07
【问题描述】:
我希望为电子邮件设置一个验证条件,在“.xxx”(电子邮件终止,例如:john123@gmail.xxx)之后,字符限制小于 3 但仅大于 2(例如:如果 john123 则无效@gmail.c 或 @gmail.commm)。
这是我的尝试:
public final boolean validEmail(String target){
boolean valid_dot_com
if(target.toString().contains(".")){
int indexDot = target.toString().indexOf(".");
// substring from char containing "." to last char
String temp = target.toString().substring(indexDot,
target.length());
if(temp.length()<2 && temp.length()>3){
valid_dot_com = false;
}
}
return valid_dot_com && Patterns.EMAIL_ADDRESS.matcher(target).matches();
}
但是,此代码没有返回我需要的结果。
我确实有这样的理论,即 Patterns.EMAIL_ADDRESS 会覆盖我的布尔值,导致条件检查变为真,即使它不是。
请赐教!
编辑:
我找到了答案!
通过在线正则表达式生成器:https://regex101.com/ 我已经能够生成自定义正则表达式模式来编译和进行验证。其余代码类似于简单的条件。
感谢大家的回复!
【问题讨论】:
-
请使用正则表达式进行电子邮件验证。
-
@Eugene 只需在您的代码中进行简单的修改,查看下面的答案
标签: java android validation email