ayuda con patrones para validacion!!

188 views
Skip to first unread message

Majitop86

unread,
Jul 2, 2008, 2:47:14 PM7/2/08
to symfony-es
buen dia a todos...!!

weno tengo un problema, estoy validando un campo contraseña para que
solo me acepte contraseña que tengan numeros, mayusculas, minusculas,
y caracteres especiales (ej: @$%&), solo las contraseñas que tengas 3
de estos cuatro tipo sera valida caso contrario no lo seran!

ejemplo

M@ri@ <-- contraseña valida

majo1345 <-- contraseña invalida porq solo tiene dos tipos de las
condiciones anteriores

y he estado leyendo acerca de crear patrones para usarlo con el
validador sfRegexValidator, pero el problema que tengo es que noc como
validar los caracteres especiales, por que hasta donde se el patron
para validar numeros y letras el patron seria /[A-Za-z0-9]/ no??? o
estoy equivocada?

en todo caso me gustaria saber si estoy en lo correcto al usar el
patron /[A-Za-z0-9]/ para validar letras y numeros, y como podria
hacer para validar tambien ahi caracteres especiales.

gracias

Luciano A. Andrade

unread,
Jul 3, 2008, 11:03:44 PM7/3/08
to symfo...@googlegroups.com
Nunca use el validador, pero el patron /[A-Za-z0-9]/ es de regex y
esos si los use, y este en particular quiere decir todo los carcateres
entre la A y la Z, todos los carcateres entre la a y la z y todo los
caracteres entre el 0 y el 9 (esto pues estan entre corchetes), para
agregar los caracteres especiales podes usar
/[A-Za-z0-9@$%&]/
es decir podes poner los carcateres que queres validar (mientras no
sea ]), pero me parece que eso no es exactamente lo que queres pues,
esto validará (si es que funciona como supongo) que solo tenga
caracteres que esten dentro de esta lista y no que contenga
caracteres, numeros y carac. especiales, es decir validaria ambas
contraseña, para esto creo que necesitarias un validador especialmente
programado.


El día 2 de julio de 2008 15:47, Majitop86 <mjro...@hotmail.com> escribió

rocaloru

unread,
Jul 4, 2008, 12:20:51 AM7/4/08
to symfony-es
Pues yo tampoco he utilizado ese validador, pero si he utilizado
expresiones con php y javascrip y se me hace que para que te acepte el
caracter $ tienes que ponerle un \ antes.....quedandote de la
siguiente manera
/[A-Za-z0-9@\$%&]/

Bueno y para hacer lo que quieres necesitaras programarla a mano o
hacer las diversas combinaciones que pueden surgir pero se me hace que
se te complicara mas....bueno suerte y espero te sirva de algo..
On 3 jul, 22:03, "Luciano A. Andrade" <andrade.luci...@gmail.com>
wrote:
> Nunca use el validador, pero el patron /[A-Za-z0-9]/ es de regex y
> esos si los use, y este en particular quiere decir todo los carcateres
> entre la A y la Z, todos los carcateres entre la a y la z y todo los
> caracteres entre eel 0 y el 9 (esto pues estan entre corchetes), para
> agregar los caracteres especiales podes usar
> /[A-Za-z0-9@$%&]/
> es decir podes poner los carcateres que queres validar (mientras no
> sea ]), pero me parece que eso no es exactamente lo que queres pues,
> esto validará (si es que funciona como supongo) que solo tenga
> caracteres que esten dentro de esta lista y no que contenga
> caracteres, numeros y carac. especiales, es decir validaria ambas
> contraseña, para esto creo que necesitarias un validador especialmente
> programado.
>
> El día 2 de julio de 2008 15:47, Majitop86 <mjroma...@hotmail.com> escribió

pizzakiller

unread,
Jul 4, 2008, 8:31:52 PM7/4/08
to symfo...@googlegroups.com
El Miércoles, 2 de Julio de 2008 14:17, Majitop86 escribió:
> y he estado leyendo acerca de crear patrones para usarlo con el
> validador sfRegexValidator, pero el problema que tengo es que noc como
> validar los caracteres especiales, por que hasta donde se el patron
> para validar numeros y letras el patron seria /[A-Za-z0-9]/ no??? o
> estoy equivocada?
>
> en todo caso me gustaria saber si estoy en lo correcto al usar el
> patron /[A-Za-z0-9]/ para validar letras y numeros, y como podria
> hacer para validar tambien ahi caracteres especiales.

este es un ejemplo, creo es el que necesitas
/(?=.*[1-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@\!\"\#\$\%\\\&/\(\)\?\|]).{5,15}\

te explico :
esta expresión hace que sean válidas cadenas que contengan
al menos 1 numero del 1 al 9 y al menos una letra mayúscula y una minúscula y
al menos uno de los caracteres especiales listados, además que contenga un
mínimo de 5 caracteres y un máximo de 15

hay que tener especial cuidado al listar los caracteres especiales
como con las expresiones regulares se usan comando que son caracteres
especiales, como $ o [] etc... para listar estos de deben "escapar" con \
antes del caractere especial..

espero te ayude,..


bytes..

--
Juliocésar Prieto Lem -
Programmers never dies.. Only GOSUB without RETURN
user linux 218820. running Linux 2.6.18-3-686 i686 GNU/Linux
vie jul 4 19:47:42 VET 2008
Fingerprint = 04CC 8521 D3BF EB25 7F95 7E77 BB0A 5235 8C1B EF4B

rocaloru

unread,
Jul 4, 2008, 9:12:28 PM7/4/08
to symfony-es
la unica duda que tengo es que con si con esa expresion pueden ir en
cualquier orden o tienen que estar en ese orden
empezar con un numero y continuar con una letra en mayuscala y luego
el caracter,???

pizzakiller

unread,
Jul 4, 2008, 9:59:59 PM7/4/08
to symfo...@googlegroups.com
El Viernes, 4 de Julio de 2008 20:42, rocaloru escribió:
> la unica duda que tengo es que con si con esa expresion pueden ir en
> cualquier orden o tienen que estar en ese orden
> empezar con un numero y continuar con una letra en mayuscala y luego
> el caracter,???

en cualquier orden,
el comando para obligar a empezar con un caracter es ^

a y tenia un error al final es / y no \ ...

/(?=.*[1-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@\!\"\#\$\%\\\&\/\(\)\?\|]).{5,15}/


--
Juliocésar Prieto Lem -
Programmers never dies.. Only GOSUB without RETURN
user linux 218820. running Linux 2.6.18-3-686 i686 GNU/Linux

vie jul 4 21:25:22 VET 2008

Majitop86

unread,
Jul 16, 2008, 1:06:16 PM7/16/08
to symfony-es
holap!!!!! tengo una duda sobre el patron que me dist.. lo probe y me
sale un error...
para ser mas clara este error!!! py no entiendo q esta mal
Warning: preg_match() [function.preg-match]: No ending delimiter '/'
found in C:\www\php5\PEAR\symfony\validator\sfRegexValidator.class.php
on line 50

y ninguna contraseña me la acepta :S que estoy haciendo mal??

asi lo tengo puesto
validaPassword1:
class: sfRegexValidator
param:
match: Yes
match_error: La contraseña no es valida
pattern: /(?=.*[1-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@\.\-\&\!\"\#\
$\%\\\&\/\(\)\?\|]).{8,15}/
con la diferencia que puse 8 en vez de 5 y le aumente 3 caracteres
especiales mas!!! ayuda plis
Reply all
Reply to author
Forward
0 new messages