我有三个编辑文本来获取值,电子邮件是其中之一,我无法验证电子邮件文本的具体验证,所以任何人都可以建议我如何做到这一点......
我的代码是......
String Tomaail="feedback@earthcorporation.co.in";
String Name=name.getText().toString();
String Mail=mail.getText().toString().trim();
String Phone=phone.getText().toString();
String Feedback=feedback.getText().toString();
String emailPattern = "[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]+";
if(Name.compareTo("") == 0 || Mail.compareTo("") == 0 || Phone.compareTo("") == 0 || Feedback.compareTo("") == 0)
{
if(Name.compareTo("") == 0)
{
name.setError("Enter Name");
}
else if (Mail.matches(emailPattern) || Mail.compareTo("") == 0)
{
mail.setError("Enter valid Address");
}
else if(Phone.compareTo("") == 0)
{
phone.setError("Enter Your Phone No.");
}
else
{
feedback.setError("Enter your Feedback");
}
Toast.makeText(feedback.this,"Enter All Data",Toast.LENGTH_SHORT).show();
}
else
{
答案 0 :(得分:2)
public final static boolean isValidEmail(CharSequence target) {
if (target == null) {
return false;
} else {
return android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches();
}
}
如果电子邮件地址有效,那么它将返回True其他Wise false
答案 1 :(得分:0)
最简单的方法是使用内置方法:
if(!android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches())
{
mail.setError("Enter valid Address");
}
或者您可以使用如下正则表达式进行电子邮件验证:
private static final String EMAIL_REGEX = "^[_a-z0-9-\\+]+(\\.[_a-z0-9-]+)*@[a-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
并像这样验证
......
else if (!Mail.matches(EMAIL_REGEX))
{
mail.setError("Enter valid Address");
}
....
或者您也可以尝试使用内置匹配器:
[编辑]:更改REGEX
以避免CAP字符。
[注意]:确保!
内有 if
符号,否则会产生相反的效果。
希望它有所帮助。 :)
答案 2 :(得分:0)
始终使用小写字母启动变量名称。
如果您需要检查字符串是否为空,请使用string.isEmpty()
或string.length() == 0
。如果字符串可以为null,请使用TextUtils.isEmpty(string)
。 String.compareTo("") == 0
非常糟糕。
最后,要查看电子邮件的有效性,请使用Patterns.EMAIL_ADDRESS.matcher(emailString).matches()
答案 3 :(得分:0)
返回android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches();