我开发了一个可以向用户发送电子邮件的安卓应用。
但是有些电子邮件地址是无效的。
如何检查用户输入的电子邮件地址是否有效?
如果您想检查电子邮件的有效性,可以使用以下方法:
public static boolean isValidEmail(CharSequence target) {
if (target == null) {
return false;
} else {
return android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches();
}
}
但是没有办法找出哪个电子邮件地址是真实的。
您可以使用以下方法来消除if/else。
public static boolean isValidEmail(CharSequence target) {
return target != null && android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches();
}
这段代码完全正常,它会给你一个布尔值。如果为真,则返回真;如果为假,则返回假。
android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
public boolean isEmailValid(String email)
{
final String EMAIL_PATTERN =
"^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
final Pattern pattern = Pattern.compile(EMAIL_PATTERN);
final Matcher matcher = pattern.matcher(email);
return matcher.matches();
}
检查电子邮件是否真实的最好方法可能是向该地址发送一封带有验证代码/链接的电子邮件,以激活您网站上的用户。使用正则表达式只能确保电子邮件有效,但不一定是真实的。
if(validateEmail(mEdtTxtEmail.getText().toString().trim())){
// your code
}
private boolean validateEmail(String data){
Pattern emailPattern = Pattern.compile(".+@.+\\.[a-z]+");
Matcher emailMatcher = emailPattern.matcher(data);
return emailMatcher.matches();
}
无法确认电子邮件是否真实有效。但您可以仅检查它是否符合正确的格式。
Use :
if (!Patterns.EMAIL_ADDRESS.matcher(your_edit_text.getText().toString()).matches()){
loginEmail.setError("Please enter a Valid E-Mail Address!");
}else {
//email is valid
}
这里是一个使用Kotlin扩展的Kotlin版本(扩展了String对象,因此您可以调用stringName.isValidEmail()
):
fun String.isValidEmail(): Boolean {
return android.util.Patterns.EMAIL_ADDRESS.matcher(this).matches()
}
return target != null && android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches();
呢? - Hamzeh Soboh