4 回答
TA贡献1802条经验 获得超6个赞
如果您想避免为电子邮件验证创建正则表达式,您可以使用下一个代码
private void validateEmail() {
String email = emailEditText.getText().toString().trim();
if (PatternsCompat.EMAIL_ADDRESS.matcher(email).matches() &&
(email.endsWith("@gmail.com") || email.endsWith("libraryparadise.com"))) {
setEmail(email);
} else {
displayError();
}
}
TA贡献1829条经验 获得超7个赞
尝试此代码来检查电子邮件验证 Patterns.EMAIL_ADDRESS.matcher 只需检查正确的电子邮件模式,例如“ abc@xyz.com ”
String email=emailText.getText().toString();
//check email patterns validation
if(!Patterns.EMAIL_ADDRESS.matcher(email).matches()){
Toast.makeText(context, "Email not valid", Toast.LENGTH_SHORT).show();
return;
}else{
Toast.makeText(context, "Email not valid", Toast.LENGTH_SHORT).show();
}
TA贡献1859条经验 获得超6个赞
鉴于电子邮件地址的复杂性,目前还没有一个很好的电子邮件验证解决方案。
考虑两部分验证
1. 验证电子邮件地址文本是否以“@libraryparadise.com”或“@gmail.com”结尾,并且“@”字符左侧有 1 个字符
2. 使用正则表达式验证电子邮件地址
将这些验证分解为多个检查而不是一个大的正则表达式会更容易。如果检查位于不同的检查中,未来的开发人员可以阅读代码以更轻松地按顺序查看检查。
TA贡献1866条经验 获得超5个赞
您可以使用正则表达式
如果您确定只想要“libraryparadise.com”和“gmail.com”,那么您可以使用两个正则表达式并像这样比较它们。
String regex = "^[a-zA-Z0-9_]+(?:\\.[a-zA-Z0-9_]+)*@gmail.com*$";
String regex2 = "^[a-zA-Z0-9_]+(?:\\.[a-zA-Z0-
9_]+)*@libraryparadise.com*$";
Pattern pattern = Pattern.compile(regex);
Pattern pattern2 = Pattern.compile(regex2);
获取包含文本的视图
sampleText=findViewById(R.id.sampleText);
然后在条件中的任何地方使用它。
if(pattern.matcher(sampleText.getText().toString().trim()).matches()||
pattern2.matcher(sampleText.getText().toString().trim()).matches()){
//ValidEmail
}
else {
//Invalid Email
}
添加回答
举报