edittext의 텍스트가 이메일 주소인지 확인하는 방법은 무엇입니까?


114

및 정규 표현식 edittext을 사용하지 않고 이메일 주소 의 텍스트를 확인하는 방법 은 javascript무엇입니까? 여기서는 inputtype="textEmailAddress"이것이 작동하지만 오류 메시지가 표시되지 않는 것을 사용 했습니다.


2
아래 PointerNull의 대답은 합리적이고 현대적인 대답입니다.
Fattie 2014 년

1
@JoeBlow 그래, 난 동의하지만, "아스 커는"합의 된 답을 변경할 수 있습니다 제한된 시간 ....이
angryITguy

답변:


225
/**
 * method is used for checking valid email id format.
 * 
 * @param email
 * @return boolean true for valid false for invalid
 */
public static boolean isEmailValid(String email) {
    String expression = "^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";
    Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher(email);
    return matcher.matches();
}

이 함수에서 편집 텍스트 문자열을 전달하십시오.

올바른 이메일 확인을 위해서는 서버 측 인증이 필요합니다.


참고 가 이제 내장 된 안드로이드 방법은 아래 답변을 참조하십시오.


7
String구현은 CharSequence그래서 나는에서 주조 생각 email에이 inputStr중복됩니다.
nuala 2012-08-02

2-4 자보다 긴 새로운 최상위 도메인이 도입됨에 따라이를 업데이트해야합니다. {2.4} "를"+ "로 바꾸면됩니다. (예 : joe@century21.realtor)
Dave Owens

전자 메일 주소의 유효성을 검사 할 때 정규 표현식을 사용하지 마십시오 (참조 stackoverflow.com/a/201378/2003763 )
티보 D.

409

Android 2.2 이상에서는 다음을 사용하십시오.

boolean isEmailValid(CharSequence email) {
   return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
}

예를 들면 :

EditText emailid = (EditText) loginView.findViewById(R.id.login_email);
String getEmailId = emailid.getText().toString();

// Check if email id is valid or not
       if (!isEmailValid(getEmailId)){
        new CustomToast().Show_Toast(getActivity(), loginView,
                "Your Email Id is Invalid.");
 }

13

다음 단계를 따르십시오

1 단계 :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <EditText
        android:id="@+id/editText_email"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_below="@+id/textView_email"
        android:layout_marginTop="40dp"
        android:hint="Email Adderess"
        android:inputType="textEmailAddress" />

    <TextView
        android:id="@+id/textView_email"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="30dp"
        android:text="Email Validation Example" />

</RelativeLayout>

2 단계:

import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;

3 단계 :

public class MainActivity extends Activity {

private EditText email;

private String valid_email;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    initilizeUI();
}

/**
 * This method is used to initialize UI Components
 */
private void initilizeUI() {
    // TODO Auto-generated method stub

    email = (EditText) findViewById(R.id.editText_email);

    email.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
            // TODO Auto-generated method stub

        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            // TODO Auto-generated method stub

        }

        @Override
        public void afterTextChanged(Editable s) {
            // TODO Auto-generated method stub

            // TODO Auto-generated method stub
            Is_Valid_Email(email); // pass your EditText Obj here.
        }

        public void Is_Valid_Email(EditText edt) {
            if (edt.getText().toString() == null) {
                edt.setError("Invalid Email Address");
                valid_email = null;
            } else if (isEmailValid(edt.getText().toString()) == false) {
                edt.setError("Invalid Email Address");
                valid_email = null;
            } else {
                valid_email = edt.getText().toString();
            }
        }

        boolean isEmailValid(CharSequence email) {
            return android.util.Patterns.EMAIL_ADDRESS.matcher(email)
                    .matches();
        } // end of TextWatcher (email)
    });

}

}

12

기본적으로 일부 유효성 검사 방법을 지원하고 실제로 매우 유연한 EditText를 확장하는 라이브러리를 작성했습니다.

내가 쓰는 현재 기본적으로 지원되는 ( xml 속성을 통해 ) 유효성 검사 방법은 다음과 같습니다.

  1. regexp : 사용자 정의 regexp 용
  2. 숫자 : 숫자 필드 전용
  3. alpha : 알파 전용 필드 용
  4. alphaNumeric : 무엇을 추측합니까?
  5. 이메일 : 필드가 유효한 이메일인지 확인합니다.
  6. creditCard : Luhn Algorithm을 사용하여 필드에 유효한 신용 카드가 포함되어 있는지 확인합니다.
  7. phone : 필드에 유효한 전화 번호가 포함되어 있는지 확인합니다.
  8. domainName : 필드에 유효한 도메인 이름이 포함되어 있는지 확인합니다 (항상 API 레벨 <8에서 테스트를 통과 함).
  9. ipAddress : 필드에 유효한 IP 주소가 포함되어 있는지 확인 webUrl : 필드에 유효한 URL이 포함되어 있는지 확인합니다 (항상 API 레벨 <8에서 테스트를 통과 함).
  10. nocheck : 아무것도 확인하지 않습니다. (기본)

여기에서 확인할 수 있습니다 : https://github.com/vekexasia/android-form-edittext

즐기 셨으면 좋겠습니다 :)

내가 링크 한 페이지에서 이메일 확인에 대한 예제도 찾을 수 있습니다. 여기에 상대 스 니펫을 복사하겠습니다.

<com.andreabaccega.widget.FormEditText
       style="@android:style/Widget.EditText"
       whatever:test="email"
       android:id="@+id/et_email"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:hint="@string/hint_email"
       android:inputType="textEmailAddress"
       />  

라이브러리 가능성을 보여주는 테스트 앱도 있습니다.

이메일 필드를 확인하는 앱의 스크린 샷입니다.

XML + 라이브러리를 통해 이메일 검증 완료


7

답변 중 하나에서 언급했듯이 다음과 같이 Patterns수업을 사용할 수 있습니다 .

public final static boolean isValidEmail(CharSequence target) {
    if (target == null) 
        return false;

    return android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches();
}

우연히도 8 미만의 API 레벨을 지원하는 경우 Patterns.java파일을 프로젝트에 복사하여 참조 할 수 있습니다. 이 링크Patterns.java 에서 소스 코드를 얻을 수 있습니다.


4

귀하의 경우에는 android.util.Patterns package.

EditText email = (EditText)findViewById(R.id.user_email);

if(Patterns.EMAIL_ADDRESS.matcher(email.getText().toString()).matches())
    Toast.makeText(this, "Email is VALID.", Toast.LENGTH_SHORT).show();
else
    Toast.makeText(this, "Email is INVALID.", Toast.LENGTH_SHORT).show();

3

다음 코드가 유용 할 것입니다.

String email;
check.setOnClickListener(new OnClickListener() {


                public void onClick(View arg0) {

                    checkEmail(email);
                    if (checkMail) {
                        System.out.println("Valid mail Id");
                    }
                }
            });

        }
    }

    public static boolean checkEmail(String email) {

        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}" + ")+");
        return EMAIL_ADDRESS_PATTERN.matcher(email).matches();
    }

2

여기 이메일은 이메일 ID입니다.

  public boolean validateEmail(String email) {

    Pattern pattern;
    Matcher matcher;
    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.compile(EMAIL_PATTERN);
    matcher = pattern.matcher(email);
    return matcher.matches();

    }

현재 이메일 RFC의 작성자 인 John Klensin에게 귀하가 거부 한 이메일 주소가 있습니다. + 기호가 포함되어 있습니다.
arnt

2

Apache Commons Validator 는 다른 답변에서 언급했듯이 사용할 수 있습니다.

단계 : 1) 여기 에서 jar 파일을 다운로드합니다.

2 단계) 프로젝트 라이브러리에 추가하십시오.

수입 :

import org.apache.commons.validator.routines.EmailValidator;

코드:

String email = "myName@example.com";
boolean valid = EmailValidator.getInstance().isValid(email);

로컬 주소를 허용하려면 ::

boolean allowLocal = true;
boolean valid = EmailValidator.getInstance(allowLocal).isValid(email);

2

이메일 주소 확인을 위해이 간단하고 쉬운 코드를 사용해보십시오.

    String email = inputEmail.getText().toString().trim();

    if (!Patterns.EMAIL_ADDRESS.matcher(email).matches())
    {
        inputEmail.setError("Enter Valid Email Address");
        inputEmail.requestFocus();
    }

1

간단한 방법

    private boolean isValidEmail(String email)
{
    String emailRegex ="^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
    if(email.matches(emailRegex))
    {
        return true;
    }
    return false;
}

1
   I Hope this code is beneficial for you

    public class Register extends Activity 
      {
       EditText FirstName, PhoneNo, EmailId,weight;
       Button Register;
       private static final Pattern EMAIL_PATTERN = Pattern
        .compile("^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");


   private static final Pattern USERFIRSTNAME_PATTERN = Pattern
        .compile("[a-zA-Z0-9]{1,250}");
   private static final Pattern PHONE_PATTERN = Pattern
        .compile("[a-zA-Z0-9]{1,250}");
       @Override
   public void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.register);


        Register=(Button) findViewById(R.id.register);

        FirstName=(EditText)findViewById(R.id.person_firstname);

            PhoneNo =(EditText)findViewById(R.id.phone_no);
            EmailId=(EditText)findViewById(R.id.email_id);
            weight=(EditText) findViewById(R.id.weight);

         Register.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                sFirstName= FirstName.getText().toString();
                 sPhoneNo= PhoneNo.getText().toString();
                sEmailId= EmailId.getText().toString();
                sweight= weight.getText().toString(); 

                if(sFirstName.equals("")||sPhoneNo.equals("")||sEmailId.equals("")||sweight.equals(""))
                {
                    if ((!CheckUsername(sFirstName))) 
                     {
                     Toast.makeText(Register.this, "FirstName can not be null",Toast.LENGTH_LONG).show();
                     }
                   else if ((!Checkphoneno(sPhoneNo)))
                       {
                    Toast.makeText(Register.this, "ENTER VALID mobile no ",Toast.LENGTH_LONG).show();
                       }
                    else if ((!CheckEmail(sEmailId)))
                       {
                      Toast.makeText(Register.this, "ENTER VALID EMAIL ID",Toast.LENGTH_LONG).show();
                       }
                    else if ((!Checkweight(sweight)))
                      {
                    Toast.makeText(Register.this, "ENTER Weight in kg",Toast.LENGTH_LONG).show();
                      }
               }

            }
                private boolean CheckEmail(String sEmailId) {

                    return EMAIL_PATTERN.matcher(sEmailId).matches();
                }



                private boolean CheckUsername(String sFirstName) {

                    return USERFIRSTNAME_PATTERN.matcher(sFirstName).matches();
                }
                private boolean Checkphoneno(String sPhoneNo) {

                    return PHONE_PATTERN.matcher(sPhoneNo).matches();
                }
                private boolean Checkweight(String sweight) {

                    return Weight_PATTERN.matcher(sweight).matches();
                }


        });

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

    String expression = "^(([\\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})$";
    // "^[\\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;
}

0

이메일 확인을 위해 이것을 시도하십시오.

public boolean checkemail(String email)
{

    Pattern pattern = Pattern.compile(".+@.+\\.[a-z]+");
    Matcher matcher = pattern.matcher(email);
    return matcher.matches();

}

선생님은 이메일로 gfdfg@+*&.com 대한 검증 테스트 해보십시오
R Fauzdar에게

0

정규 표현식으로 확인할 수 있습니다

    public boolean isValid(String strEmail)
    {
        pattern = Pattern.compile("^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");
            matcher = pattern.matcher(strEmail);

        if (strEmail.isEmpty()) {
           return false;
        } else if (!matcher.matches()) {
            return false;
        }
        else
        {
        return true;
        }
     }


0

android.util.Patterns 및 Kotlin을 사용하면 매우 간단합니다. 부울 값을 반환하는 한 줄 함수입니다.

fun validateEmail(email: String) = Patterns.EMAIL_ADDRESS.matcher(email)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.