Expresión regular en Android para el campo de contraseña

¿Cómo puedo validar el EditText con Regex permitiendo caracteres particulares. Mi condición es:

Regla de contraseñas:

  1. Una letra mayúscula
  2. Un número
  3. Un símbolo (@,$,%,&,#,) cualesquiera símbolos normales que sean aceptables.

    ¿Puedo saber cuál es la manera correcta de alcanzar mi objetivo?

4 Solutions collect form web for “Expresión regular en Android para el campo de contraseña”

Prueba esto puede ayudar

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

¿Cómo funciona?

 ^ # start-of-string (?=.*[0-9]) # a digit must occur at least once (?=.*[az]) # a lower case letter must occur at least once (?=.*[AZ]) # 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 

¿Cómo implementar?

 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])(?=.*[az])(?=.*[AZ])(?=.*[@#$%^&+=])(?=\\S+$).{4,}$"; pattern = Pattern.compile(PASSWORD_PATTERN); matcher = pattern.matcher(password); return matcher.matches(); } } 

Prueba esto.

 (/^(?=.*\d)(?=.*[AZ])([@$%&#])[0-9a-zA-Z]{4,}$/) (/^ (?=.*\d) //should contain at least one digit (?=.*[@$%&#]) //should contain at least one special char (?=.*[AZ]) //should contain at least one upper case [a-zA-Z0-9]{4,} //should contain at least 8 from the mentioned characters $/) 
 try { if (subjectString.matches("^(?=.*[@$%&#_()=+?»«<>£§€{}\\[\\]-])(?=.*[AZ])(?=.*[az])(?=.*\\d).*(?<=.{4,})$")) { // String matched entirely } else { // Match attempt failed } } catch (PatternSyntaxException ex) { // Syntax error in the regular expression } (?=.*[@\$%&#_()=+?»«<>£§€{}.[\]-]) -> must have at least 1 special character (?=.*[AZ]) -> Must have at least 1 upper case letter (?=.*[az]) -> Must have at least 1 lower case letter (?=.*\\d) -> Must have at least 1 digit (?<=.{4,})$") -> Must be equal or superior to 4 chars. 

Puede utilizar la clase Patern de Matcher para cada formato de comprobación.

Les doy un ejemplo de uso:

  Pattern pattern = Pattern.compile(".+@.+\\.[az]+"); Matcher matcher = pattern.matcher(myEmailString); if (!myEmailString.contains("@") || !matcher.matches()) { // error in the email : do staff myEmailView.setError("invalid email !"); } 
  • java.util.regex.PatternSyntaxException: Error de sintaxis en patrón regex cerca de índice
  • Android que convierte la cadena a la secuencia de la matriz
  • Android / Java: comprueba si url es url válida de youtube
  • Jsoup obtiene elemento en value = ""
  • ¿Qué hace (?! A) {0}? Significa en un regex de Java?
  • Uso de regex y android para categorizar diferentes campos
  • Cómo reemplazar una cadena si no está contenida entre '<' y '>'
  • Android reemplazar con regex
  • Consulta de SQLiteDatabase de Android con Regex
  • ¿Cuál sería una simple expresión regular para la comprobación de contraseña durante la suscripción?
  • Editar texto aceptar sólo números no números decimales en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.