Foros del Web » Programación para mayores de 30 ;) » RegExp »

Expresión regular para una contraseña

Estas en el tema de Expresión regular para una contraseña en el foro de RegExp en Foros del Web. Hola buenas a todos!!! :) No se si me podrían ayudar a crear esta expresión regular para una contraseña: Las contraseña debe contener letras mayúsculas, ...
  #1 (permalink)  
Antiguo 11/06/2013, 13:31
 
Fecha de Ingreso: mayo-2012
Mensajes: 2
Antigüedad: 12 años
Puntos: 0
Pregunta Expresión regular para una contraseña

Hola buenas a todos!!! :)

No se si me podrían ayudar a crear esta expresión regular para una contraseña:

Las contraseña debe contener letras mayúsculas, minúsculas y números.

Muchas gracias amigos.
  #2 (permalink)  
Antiguo 11/06/2013, 15:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Expresión regular para una contraseña

En términos generales, los rangos son sencillos:

A-Z para mayúsculas, a-z para minúsculas y 0-9 para números.

Ahora te toca agrupar dichos rangos y aplicar la expresión.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 03/07/2013, 11:16
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Expresión regular para una contraseña

Aprovecho a preguntar para mejorar tambien en esto.... una DUDA... y es que en el codigo siguiente se "pueden" presentar combianaciones de minusculas, mayusculas y numeros pero como se hace para que sea "obligado" que esten ?

Código PHP:
<?php

// 'ferTTTgege544454ee => pasa
// 'ferrTTTTTTTTTTTTT => pasa (y no deberia)

$pass ='ferTTTgege544454ee';
$regex '/^([a-z0-9A-Z]{1,})$/';
echo (
preg_match($regex$pass,$arr) ? 'Aceptada' 'Rechazada');
__________________
Salu2!

Última edición por Italico76; 03/07/2013 a las 11:36
  #4 (permalink)  
Antiguo 03/07/2013, 15:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Expresión regular para una contraseña

Debe pensarse mas en la "presencia" que en la "posibilidad", suena extraño, lo sé.

Los rangos implican posibilidad mas no presencia, pues al ser un conjunto opcional no hay nada que indique obligatoriedad.

Una forma de controlar la presencia es usando grupos para mirar hacia atrás/adelante, es decir, así:

Código PHP:
Ver original
  1. $test = array('ferTTTgege544454ee', 'ferrTTTTTTTTTTTTT');
  2. $regex = '/^(?:.*(?=[A-Z]).*(?=[a-z]).*(?=[0-9]).*|.*(?=[a-z]).*(?=[0-9]).*(?=[A-Z]).*|.*(?=[0-9]).*(?=[A-Z]).*(?=[a-z]).*|.*(?=[a-z]).*(?=[A-Z]).*(?=[0-9]).*)$/';
  3.  
  4. foreach ($test as $one) {
  5.   if (preg_match($regex, $one)) {
  6.     echo "=> $one PASS!\n";
  7.   }
  8. }

A grosso modo únicamente estoy comparando las permutas de dichos rangos, no es limpio, ni la mejor expresión que se me ocurre, pero al menos resuelve el problema.

Básicamente es un serie de sentencias como "cualquier cosa seguida de [...]", etc.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 03/07/2013, 17:57
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Expresión regular para una contraseña

Ya habia visto otra respuesta tuya explicando esa técnica aunque en principio es un rompedero de cabeza y no pude captarlo asi de facil... ya mismo vuelvo a estudiarlo aqui... jejeje.. Gracias!!
__________________
Salu2!

Etiquetas: contraseña, expresion, expresiones_regulares, regular
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:20.