6

電子メールの検証を行う方法は? 次のコードを使用して、電子メールの検証を確認しました。

final String EMAIL_PATTERN = "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-    Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
Pattern pattern = Pattern.compile(EMAIL_PATTERN);
Matcher matcher = pattern.matcher(string);

上記のコードは正常に動作しますが、文字列を as"example@gmail.com.com"も入力すると、応答はtrue.

これを検証する必要があります。どうすればこれを検証できますか?. 私を助けてください。

4

9 に答える 9

31

このコード ブロックを使用します 電子メールをこの関数に渡します。この関数は true または false のいずれかのブール値を返します

  private boolean validEmail(String email) {
    Pattern pattern = Patterns.EMAIL_ADDRESS;
    return pattern.matcher(email).matches();
}


  if (!validEmail(email)) {
     Toast.makeText(YourActivity.this,"Enter valid e-mail!",Toast.LENGTH_LONG).show();

}
于 2013-09-20T06:08:56.467 に答える
1

メールをチェックする機能を提供するAndroid自体が有効ではないため、regを定義する必要はありませんTextUtils.isEmpty(edtEmail.getText().toString().trim())

2番目の方法は次のとおりです。

public static boolean isEmailValid(String email) {

        String regExpn = "^(([\\w-]+\\.)+[\\w-]+|([a-zA-Z]{1}|[\\w-]{2,}))@"
                + "((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\\.([0-1]?"
                + "[0-9]{1,2}|25[0-5]|2[0-4][0-9])\\."
                + "([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\\.([0-1]?"
                + "[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|"
                + "([a-zA-Z]+[\\w-]+\\.)+[a-zA-Z]{2,4})$";
        CharSequence inputStr = email;
        Pattern pattern = Pattern.compile(regExpn, Pattern.CASE_INSENSITIVE);
        Matcher matcher = pattern.matcher(inputStr);
        if (matcher.matches())
            return true;
        else
            return false;
    }

それがあなたを助けることを願っています

于 2013-09-20T06:14:40.970 に答える
0

これを試して...

public static boolean validateEmail(String email)
{
    boolean isValid = false;

    String expression = "^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";
    CharSequence inputStr = email;

    Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher(inputStr);
    if(matcher.matches()) 
    {
        isValid = true;
    }

    return isValid;
}
于 2013-09-20T06:03:04.057 に答える
0

以下のようにパターンを初期化します

public final Pattern EMAIL_ADDRESS_PATTERN = Pattern
            .compile("[a-zA-Z0-9+._%-+]{1,256}" + "@"
                    + "[a-zA-Z0-9][a-zA-Z0-9-]{0,64}" + "(" + "."
                    + "[a-zA-Z0-9][a-zA-Z0-9-]{0,25}" + ")+");

以下の機能をアクティビティにコピーします

private boolean checkEmail(String email1) {
        return EMAIL_ADDRESS_PATTERN.matcher(email1).matches();
    }

そして、この関数を email edittext 文字列で呼び出します。この関数は、結果として TRUE または FALSE を書き込みます

于 2013-09-20T05:57:20.403 に答える
0

使用する:

  public boolean validateEmail(String strEmail) {
            Matcher matcher;
            String EMAIL_PATTERN = "[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" + "\\@"
                    + "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" + "(" + "\\."
                    + "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" + ")+";
            Pattern pattern = Pattern.compile(EMAIL_PATTERN);
            matcher = pattern.matcher(strEmail);
            return matcher.matches();

true が返された場合、電子メールは有効です。そうでない場合は無効です。

于 2013-09-20T05:57:30.860 に答える
0

以下は、それを処理する最も簡単で最良の方法です。

EditText e1 = (EditText)findViewById(R.id.e1); 
TextView t1 = (TextView)findViewById(R.id.t1); 

String email = e1.getText().toString().trim();
String emailPattern = "[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]+";

// Below is the code that goes on your button click
if (email.matches(emailPattern))
{
    // Do what you want to, Allow user to next screen
}
else 
{
    // Show error Message
}
于 2013-09-20T05:58:04.967 に答える
0

これを試して

   private boolean validEmail(String email) 
   {
     // TODO Auto-generated method stub
     String emailPattern = "[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]+";
     String emailPatternnew = "[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]+\\.+[a-z]+";
     String domain = email.substring(email.indexOf('@'), email.length());
     String last = domain.substring(domain.indexOf('.'),domain.length());
     if (email.matches(emailPattern) && (last.length() ==3 || last.length() == 4)) // check @domain.nl or @domain.com or @domain.org
    {      
        return true;
    }
    else if(email.matches(emailPatternnew) && last.length() == 6 && email.charAt(email.length()-3)== '.') //check for @domain.co.in or @domain.co.uk
    {
        return true;
    }
    else
    {
        return false;
    }
}
于 2013-09-20T06:13:22.093 に答える
0

試してみてください:

String emailPattern = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
于 2013-09-20T06:00:17.260 に答える