我是Android开发的新手。 在我的登录身份验证活动中,我需要验证输入字段。 我希望"."后面的字符只能是字母。
ehsan@gmail。.com
如果用户键入如下字符串: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; }
当我运行此代码时,应用程序强制关闭。 怎么了?
请使用Patterns
类来验证电子邮件地址:
public static boolean isValidEmail(String email) {
return !TextUtils.isEmpty(email) && Patterns.EMAIL_ADDRESS.matcher(email).matches();
}
我不太确定,但我想问题是字符@,它不在a-z区间。因此,请尝试
!ar[ar.length -1].matches("[a-z@]")
另外,请记住,电子邮件可能包含其他特殊字符,例如"_">
email.matches(".+\.[a-zA-Z]+")
似乎可以完成这项工作。它不是世界上最复杂的正则表达式,但它有效。
valid@gmail.com
比赛。invalid@gmail.a1b
不匹配。