Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Regular Expression In Android for Password Field

Tags:

regex

android

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

Password Rule:

  1. One capital letter

  2. One number

  3. One symbol (@,$,%,&,#,) whatever normal symbols that are acceptable.

    May I know what is the correct way to achieve my objective?

like image 499
IntelliJ Amiya Avatar asked Apr 22 '14 08:04

IntelliJ Amiya


1 Answers

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();      }  } 
like image 71
Biraj Zalavadia Avatar answered Oct 10 '22 16:10

Biraj Zalavadia