Android 如何在电子邮件验证中允许特殊字符?
我试图在验证用户输入的电子邮件时允许使用特殊字符,但android标准utils.pattern验证在这种情况下不起作用。我已实施以下措施:Android 如何在电子邮件验证中允许特殊字符?,android,validation,Android,Validation,我试图在验证用户输入的电子邮件时允许使用特殊字符,但android标准utils.pattern验证在这种情况下不起作用。我已实施以下措施: if(!AppUtils.isValidEmail(edtEmail.getText().toString())){ Toast.makeText(context, "Please enter valid email", Toast.LENGTH_SHORT).show(); return false; }
if(!AppUtils.isValidEmail(edtEmail.getText().toString())){
Toast.makeText(context, "Please enter valid email", Toast.LENGTH_SHORT).show();
return false;
}
我的验证功能:
public final static boolean isValidEmail(CharSequence target) {
return !TextUtils.isEmpty(target) && android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches();
}
是否有正则表达式或其他方法允许使用特殊字符?请使用基本正则表达式模式,并根据需要进行调整。针对您的具体问题,允许在电子邮件中使用特殊字符
Pattern pattern = Pattern.compile("^[^@]+@[a-zA-Z0-9._-]+\\.+[a-z._-]+$");
Matcher matcher = pattern.matcher(inputString);
return matcher.matches();
或者您也可以调整中使用的正则表达式
只需添加所需的特殊字符,如\\\&
public static final Pattern EMAIL_ADDRESS
= 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}" +
")+"
);
是的,这起作用了。谢谢Vikalp的帮助,但我真的不知道如何调整这个正则表达式。