How can i validating the EditText
with Regex
by allowing particular characters . My condition is :
Password Rule:
One capital letter
One number
One symbol (@,$,%,&,#,)
whatever normal symbols that are acceptable.
May I know what is the correct way to achieve my objective?
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(); } }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With