Email and phone Number Validation in android

后端 未结 12 1236
青春惊慌失措
青春惊慌失措 2020-12-02 11:03

I have a registration form in my application which I am trying to validate. I\'m facing some problems with my validation while validating the phone number and email fields.<

相关标签:
12条回答
  • 2020-12-02 11:40

    Try this

    public class Validation {
    
        public final static boolean isValidEmail(CharSequence target) {
            if (target == null) {
            return false;
            } else {
            return android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches();
            }
        } 
    
        public static final boolean isValidPhoneNumber(CharSequence target) {
            if (target.length()!=10) {
                return false;
            } else {
                return android.util.Patterns.PHONE.matcher(target).matches();
            }
        }
    
    }
    
    0 讨论(0)
  • 2020-12-02 11:44

    Use Pattern package in Android to match the input validation for email and phone

    Do like

    android.util.Patterns.EMAIL_ADDRESS.matcher(input).matches();
    android.util.Patterns.PHONE.matcher(input).matches();
    
    0 讨论(0)
  • 2020-12-02 11:44

    He want an elegant and proper solution try this small regex pattern matcher.

    This is specifically for India.(First digit can't be zero and and then can be any 9 digits) return mobile.matches("[1-9][0-9]{9}");

    Pattern Breakdown:-

    [1-9] matches first digit and checks if number(integer) lies between(inclusive) 1 to 9 [0-9]{9} matches the same thing but {9} tells the pattern that it has to check for upcoming all 9 digits.

    Now the {9} part may vary for different countries so you may have array which tells the number of digits allowed in phone number. Some countries also have significance for zero ahead of number, so you may have exception for those and design a separate regex patterns for those countries phone numbers.

    0 讨论(0)
  • 2020-12-02 11:45

    I am always using this methode for Email Validation:

    public boolean checkForEmail(Context c, EditText edit) {
        String str = edit.getText().toString();
        if (android.util.Patterns.EMAIL_ADDRESS.matcher(str).matches()) {
            return true;
        }
        Toast.makeText(c, "Email is not valid...", Toast.LENGTH_LONG).show();
        return false;
    }
    
    0 讨论(0)
  • 2020-12-02 11:45

    For check email and phone number you need to do that

    public static boolean isValidMobile(String phone) {
        boolean check = false;
        if (!Pattern.matches("[a-zA-Z]+", phone)) {
            if (phone.length() < 9 || phone.length() > 13) {
                // if(phone.length() != 10) {
                check = false;
                // txtPhone.setError("Not Valid Number");
            } else {
                check = android.util.Patterns.PHONE.matcher(phone).matches();
            }
        } else {
            check = false;
        }
        return check;
    }
    
    public static boolean isEmailValid(String email) {
        boolean check;
        Pattern p;
        Matcher m;
    
        String EMAIL_STRING = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"
                + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
    
        p = Pattern.compile(EMAIL_STRING);
    
        m = p.matcher(email);
        check = m.matches();
    
        return check;
    }
    
    
    
    String enter_mob_or_email="";//1234567890 or test@gmail.com
    if (isValidMobile(enter_mob_or_email)) {// Phone number is valid
    

    }else isEmailValid(enter_mob_or_email){//Email is valid

    }else{// Not valid email or phone number
    

    }

    0 讨论(0)
  • 2020-12-02 11:50

    XML

    <android.support.v7.widget.AppCompatEditText
        android:id="@+id/et_email_contact"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="text"
        android:maxLines="1"
        android:hint="Enter Email or Phone Number"/>
    

    Java

    private AppCompatEditText et_email_contact;
    private boolean validEmail = false, validPhone = false;     
    
    et_email_contact = findViewById(R.id.et_email_contact);
    et_email_contact.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    
        }
    
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
    
        }
    
        @Override
        public void afterTextChanged(Editable s) {
            String regex = "^[+]?[0-9]{10,13}$";
            String emailContact = s.toString();
            if (TextUtils.isEmpty(emailContact)) {
                Log.e("Validation", "Enter Mobile No or Email");
            } else {
                if (emailContact.matches(regex)) {
                    Log.e("Validation", "Valid Mobile No");
                    validPhone = true;
                    validEmail = false;
                } else if (Patterns.EMAIL_ADDRESS.matcher(emailContact).matches()) {
                    Log.e("Validation", "Valid Email Address");
                    validPhone = false;
                    validEmail = true;
                } else {
                    validPhone = false;
                    validEmail = false;
                    Log.e("Validation", "Invalid Mobile No or Email");
                }
            }
        }
    });
    
    if (validPhone || validEmail) {
        Toast.makeText(this, "Valid Email or Phone no", Toast.LENGTH_SHORT).show();
    } else {
        Toast.makeText(this, "InValid Email or Phone no", Toast.LENGTH_SHORT).show();
    }
    
    0 讨论(0)
提交回复
热议问题