gpt4 book ai didi

java - Android 电子邮件验证 : conditions for characters after "."

转载 作者:行者123 更新时间:2023-12-01 07:48:49 25 4
gpt4 key购买 nike

我希望为电子邮件设置一个验证条件,在“.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 会覆盖我的 boolean 值,导致条件检查变为 true,即使它不是 true。

请赐教!

编辑:

我找到了答案!

通过在线正则表达式生成器:https://regex101.com/我已经能够生成自定义正则表达式模式来编译并进行验证。其余代码与简单的条件类似。

谢谢大家的回复!

最佳答案

尝试这个自定义模式

String EMAIL_PATTERN = "^[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$";

public final boolean validateEmail(String target) {
if (target !=null && target.length() > 1) {
Pattern pattern = Pattern.compile(EMAIL_PATTERN);
Matcher matcher = pattern.matcher(target);
return matcher.matches();
} else if (target.length() == 0) {
return false;
} else {
return false;
}
}

关于java - Android 电子邮件验证 : conditions for characters after ".",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43338592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com