Edittext के टेक्स्ट को ईमेल एड्रेस कैसे चेक करें या नहीं?


114

कैसे edittextईमेल पते की जाँच करने के लिए है javascriptऔर नियमित रूप से अभिव्यक्ति का उपयोग किए बिना या नहीं ? यहां मैंने इसका उपयोग किया inputtype="textEmailAddress"है, लेकिन कोई त्रुटि संदेश प्रदर्शित नहीं होता है।


2
निश्चित रूप से PointerNull का उत्तर उचित, आधुनिक, उत्तर यहाँ है ??
फेटी

1
@ जॉयब्लो हाँ मैं सहमत हूँ, लेकिन सीमित समय है कि "
पूछने वाला

जवाबों:


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

नए शीर्ष स्तर डोमेन की शुरुआत के साथ जो 2-4 वर्णों से अधिक लंबे होते हैं, इसे अद्यतन करने की आवश्यकता होती है। बस "2.4}" को "+" से बदलें (जैसे joe@century21.realtor)
डेव ओवंस

ई-मेल पतों को सत्यापित करते समय नियमित भाव का उपयोग न करें (देखें stackoverflow.com/a/201378/2003763 )
थिबॉल्ट डी।

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. अल्फा : एक अल्फा केवल फ़ील्ड के लिए
  4. अल्फ़ान्यूमेरिक : क्या लगता है?
  5. ईमेल : जाँचता है कि फ़ील्ड एक मान्य ईमेल है
  6. creditCard : जाँचता है कि इस क्षेत्र में Luhn एल्गोरिथम का उपयोग करके एक वैध क्रेडिट कार्ड है
  7. फ़ोन : जाँचता है कि फ़ील्ड में एक मान्य फ़ोन नंबर है
  8. domainName : जाँचता है कि फ़ील्ड में एक मान्य डोमेन नाम है (हमेशा API स्तर में परीक्षण पास करता है <8)
  9. ipAddress : यह जाँचता है कि फ़ील्ड में एक मान्य ip पता है
  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 से कम एपीआई स्तर का समर्थन कर रहे हैं, तो आप बस 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

यहां ईमेल आपकी ईमेल-आईडी है।

  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 के लेखक जॉन क्लेंसिन का एक ईमेल पता है जिसे आप अस्वीकार करते हैं। इसमें + चिन्ह होता है।
arnt

2

Apache Commons Validator का उपयोग अन्य उत्तरों में उल्लेखित किया जा सकता है।

स्टेप: 1) जार फाइल यहां से डाउनलोड करें

चरण: 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

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)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.