Regular Expression In Android for Password Field

前端 未结 10 1153
执念已碎
执念已碎 2020-12-13 09:56

How can i validating the EditText with Regex by allowing particular characters . My condition is :

Password Rule:

  1. On

10条回答
  •  刺人心
    刺人心 (楼主)
    2020-12-13 10:08

    Try this may helps

    ^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=\\S+$).{4,}$
    

    How it works?

    ^                 # start-of-string
    (?=.*[0-9])       # a digit must occur at least once
    (?=.*[a-z])       # a lower case letter must occur at least once
    (?=.*[A-Z])       # an upper case letter must occur at least once
    (?=.*[@#$%^&+=])  # a special character must occur at least once you can replace with your special characters
    (?=\\S+$)          # no whitespace allowed in the entire string
    .{4,}             # anything, at least six places though
    $                 # end-of-string
    

    How to Implement?

    public class MainActivity extends Activity {
    
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            final EditText editText = (EditText) findViewById(R.id.edtText);
            Button btnCheck = (Button) findViewById(R.id.btnCheck);
    
            btnCheck.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View arg0) {
                    if (isValidPassword(editText.getText().toString().trim())) {
                        Toast.makeText(MainActivity.this, "Valid", Toast.LENGTH_SHORT).show();
                    } else {
                        Toast.makeText(MainActivity.this, "InValid", Toast.LENGTH_SHORT).show();
                    }
                }
            });
    
        }
    
        public boolean isValidPassword(final String password) {
    
            Pattern pattern;
            Matcher matcher;
    
            final String PASSWORD_PATTERN = "^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=\\S+$).{4,}$";
    
            pattern = Pattern.compile(PASSWORD_PATTERN);
            matcher = pattern.matcher(password);
    
            return matcher.matches();
    
        }
    
    }
    

提交回复
热议问题