Android电子邮件验证,正则表达式无效

时间:2016-04-27 16:05:55

标签: java android

我有一个正则表达式来验证电子邮件,当我运行它时,它会不断告诉我它的电子邮件地址无效但电子邮件是正确的

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");
     }

有人知道它会给我错误,即使它是正确的吗?

1 个答案:

答案 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的)。