检查字符串是否仅包含字母 - 电子邮件验证

时间:2017-08-12 23:03:00

标签: java android arrays authentication

我是Android开发新手。 在我的登录身份验证活动中,我想要验证输入字段。 我想要"之后的人物。"只是字母。

伊赫桑@的Gmail。的玉米

如果用户输入了这样的字符串:ehsan@gmail.23返回false并制作Toast。 我的代码是:

String email = "ehsan@gmail.com";
String[] ar = email.split(".");

    if ( !ar[ar.length -1].matches("[a-z]") ){
        Toast.makeText(getApplicationContext(), "your email is invalid", Toast.LENGTH_LONG).show();
return false; }

当我运行此代码时,应用程序强制关闭。 有什么问题?

3 个答案:

答案 0 :(得分:2)

请使用Patterns课程验证电子邮件地址:

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

答案 1 :(得分:1)

我并非完全确定,但我认为问题是字符@,它不在a-z区间。因此,试试

!ar[ar.length -1].matches("[a-z@]")

另外,请记住,电子邮件可能包含其他特殊字符,因为' _'例如

答案 2 :(得分:1)

email.matches(".+\\.[a-zA-Z]+")似乎可以胜任这项工作。它不是世界上最复杂的正则表达式,但它有效。

valid@gmail.com匹配。 invalid@gmail.a1b不匹配。