Nid*_*dhi 3 android email-validation pattern-matching
这些是无效的电子邮件。
email@domain.web
.email @ domain.com
我已在以下网站中检查了以上电子邮件,所有这些返回均无效。 http://isemail.info/关于 http://sqa.fyicenter.com/Online_Test_Tools/Email_Address_Format_Validator.php。
然而,android.util.Patterns.EMAIL_ADDRESS模式验证了两者。
是否有错误或我缺少什么?
请检查您使用的是正确的条件,意味着您使用相同的条件。因为有时候我们反之亦然。我知道您使用的是同一件事,但请检查此方法。我相信它将对您有所帮助。
/ *如果电子邮件有效,则返回true,否则返回false * /
@SuppressLint("DefaultLocale")
public boolean checkForEmail(EditText edit, String editName) {
String str = edit.getText().toString();
if (android.util.Patterns.EMAIL_ADDRESS.matcher(str).matches()) {
return true;
}
toastMsg(_context.getString(R.string.please_enter_valid).toString()+" "+editName+ " "
);
return false;
}
Run Code Online (Sandbox Code Playgroud)
两者似乎都是有效的电子邮件地址
email@domain.web
.email@domain.com
因为任何电子邮件地址都包含三个组成部分
<username>@<mail-server>.<mail-servertype or server-location>
Run Code Online (Sandbox Code Playgroud)
这里android.util.Patterns.EMAIL_ADDRESS使用正则表达式验证所有三个组件,并检查所有三个组件是否放置正确。一些常见的令人困惑的例子是:
com@web123.com是一个有效的邮件地址,因为com可以是用户名,也web123可以是 Web 服务器的名称。
.maths.apple@com.in也是一个有效的邮件地址,因为.maths.apple可以是用户名,也com可以是 Web 服务器的名称。
crick@.web.com无效,因为 a.不能出现在 之前或之后@。任何邮件系统都无法识别用户名或邮件服务器名称。