电子邮件地址验证在Android上的EditText

如何在android中的edittext上执行Email Validation ?我已经经历了谷歌&所以,但我没有找到一个简单的方法来验证它。

351311 次浏览

要执行电子邮件验证,我们有很多方法,但简单&最简单的方法是两个方法

1 -使用EditText(....).addTextChangedListener来触发EditText box中的每个输入,即email_id无效或有效

/**
* Email Validation ex:- tech@end.com
*/




final EditText emailValidate = (EditText)findViewById(R.id.textMessage);


final TextView textView = (TextView)findViewById(R.id.text);


String email = emailValidate.getText().toString().trim();


String emailPattern = "[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]+";


emailValidate .addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {


if (email.matches(emailPattern) && s.length() > 0)
{
Toast.makeText(getApplicationContext(),"valid email address",Toast.LENGTH_SHORT).show();
// or
textView.setText("valid email");
}
else
{
Toast.makeText(getApplicationContext(),"Invalid email address",Toast.LENGTH_SHORT).show();
//or
textView.setText("invalid email");
}
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// other stuffs
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
// other stuffs
}
});

使用if-else条件的最简单方法。使用getText()获取EditText框字符串,并与电子邮件提供的模式进行比较。如果图案不匹配或不匹配,点击按钮吐司消息。它不会在EditText框中的每个字符输入时触发。下面是一个简单的例子。

final EditText emailValidate = (EditText)findViewById(R.id.textMessage);


final TextView textView = (TextView)findViewById(R.id.text);


String email = emailValidate.getText().toString().trim();


String emailPattern = "[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]+";


// onClick of button perform this simplest code.
if (email.matches(emailPattern))
{
Toast.makeText(getApplicationContext(),"valid email address",Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getApplicationContext(),"Invalid email address", Toast.LENGTH_SHORT).show();
}

使用此方法验证电子邮件格式。将电子邮件作为字符串传递,如果格式正确则返回true,否则为false。

/**
* validate your email address format. Ex-akhi@mani.com
*/
public boolean emailValidator(String email)
{
Pattern pattern;
Matcher matcher;
final String EMAIL_PATTERN = "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
pattern = Pattern.compile(EMAIL_PATTERN);
matcher = pattern.matcher(email);
return matcher.matches();
}

试试这个:

if (!emailRegistration.matches("[a-zA-Z0-9._-]+@[a-z]+\.[a-z]+")) {
editTextEmail.setError("Invalid Email Address");
}

试试这个

public static final Pattern EMAIL_ADDRESS_PATTERN = Pattern.compile(


"[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" +
"\\@" +
"[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" +
"(" +
"\\." +
"[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" +
")+"
);

并在编辑文本

final String emailText = email.getText().toString();
EMAIL_ADDRESS_PATTERN.matcher(emailText).matches()
public static boolean isEmailValid(String email) {
boolean isValid = false;


String expression = "^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";
CharSequence inputStr = email;


Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(inputStr);
if (matcher.matches()) {
isValid = true;
}
return isValid;
}

这是我创建的一个示例方法来验证电子邮件地址,如果传递的字符串参数是一个有效的电子邮件地址,它返回true,否则返回false。

private boolean validateEmailAddress(String emailAddress){
String  expression="^[\\w\\-]([\\.\\w])+[\\w]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";
CharSequence inputStr = emailAddress;
Pattern pattern = Pattern.compile(expression,Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(inputStr);
return matcher.matches();
}

我是这样做的:

将这个方法添加到检查是否 电子邮件地址有效的:

private boolean isValidEmailId(String email){


return Pattern.compile("^(([\\w-]+\\.)+[\\w-]+|([a-zA-Z]{1}|[\\w-]{2,}))@"
+ "((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\\.([0-1]?"
+ "[0-9]{1,2}|25[0-5]|2[0-4][0-9])\\."
+ "([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\\.([0-1]?"
+ "[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|"
+ "([a-zA-Z]+[\\w-]+\\.)+[a-zA-Z]{2,4})$").matcher(email).matches();
}

现在检查EditText字符串:

if(isValidEmailId(edtEmailId.getText().toString().trim())){
Toast.makeText(getApplicationContext(), "Valid Email Address.", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(getApplicationContext(), "InValid Email Address.", Toast.LENGTH_SHORT).show();
}

完成

Java:

public static boolean isValidEmail(CharSequence target) {
return (!TextUtils.isEmpty(target) && Patterns.EMAIL_ADDRESS.matcher(target).matches());
}

芬兰湾的科特林:

fun CharSequence?.isValidEmail() = !isNullOrEmpty() && Patterns.EMAIL_ADDRESS.matcher(this).matches()

编辑:它将在Android 2.2+以上工作!!

编辑:添加了缺少的;

使用此方法验证EMAIL:-

 public static boolean isEditTextContainEmail(EditText argEditText) {


try {
Pattern pattern = Pattern.compile("^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");
Matcher matcher = pattern.matcher(argEditText.getText());
return matcher.matches();
} catch (Exception e) {
e.printStackTrace();
return false;
}
}

如果您有任何疑问,请告诉我。