如何在android中的编辑文本中进行电子邮件验证

时间:2014-01-31 13:14:35

标签: android regex android-edittext

我有三个编辑文本来获取值,电子邮件是其中之一,我无法验证电子邮件文本的具体验证,所以任何人都可以建议我如何做到这一点......

我的代码是......

        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
            {

4 个答案:

答案 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();