我有一个正则表达式来验证电子邮件,当我运行它时,它会不断告诉我它的电子邮件地址无效但电子邮件是正确的
email = (EditText) findViewById(R.id.email);
final String Email = email.getText().toString();
if (!Email.matches("^([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})$"))
{
email.requestFocus();
email.setError("INVALID EMAIL ADDRESS");
}
有人知道它会给我错误,即使它是正确的吗?
答案 0 :(得分:0)
试试这个。这应删除电子邮件后的任何隐藏空格/字符。
Email.matches
("([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5}).*"))
根据http://developer.android.com/reference/java/lang/String.html
public boolean matches(String regularExpression)
在API级别1中添加测试此字符串是否与给定的匹配 正则表达式。此方法仅在常规时返回true expression匹配整个输入字符串。一个常见的错误是 假设此方法的行为类似于contains(CharSequence);如果你 想要匹配输入字符串中的任何位置,您需要添加。* 正则表达式的开头和结尾。见匹配(String, CharSequence的)。