--
Has recibido este mensaje porque estás suscrito al grupo "Grupo PHP Argentina" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a php-arg+unsubscribe@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a php...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/php-arg?hl=es.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
On 04/03/13 20:28, Camello Ar wrote:
Asimismo necesita un regex para excluir ciertos caracteres salvo
¿Hay algún caracter que quieras excluir de un password? ¿por qué? ¿seguro? ¿te das cuenta que las listas negras no sirven?que la clave pueda contener cualquier carácter
TL;DR: No (a menos que le tengas miedo a unicode).
--
Guillermo O. «Tordek» Freschi. Programador, Escritor, Genio Maligno.
http://tordek.com.ar :: http://twitter.com/tordek
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a php-arg+u...@googlegroups.com.
On 05/03/13 19:11, Xavier Romero wrote:
Hola a todos gracias me han ayudado mucho pero como hago para que
esas validaciones no me permitan ingresar caracteres especiales como
@ $% etc.. como haria en este caso ?
Obviamente que a una consulta como esta le tengo que preguntar: ¿PARA QUÉ?
Primero al usuario le exigís que use números y letras. Suponemos, entonces, que querés forzar al usuario a que tenga seguridad... pero ahora venís a quitarle caracteres al usuario. ESTO LE QUITA SEGURIDAD. NO LE QUITES OPCIONES AL USUARIO, NO TE IMPORTA LO QUE HAGA CON SU PASSWORD, TOTAL VOS NO LO SABES.
Pero, esto sirve perfectamente para ilustrar por qué usar regex es pésimo para este tipo de validaciones.
Si usaras una sola regex, sería esto:
/^([a-zA-Z0-9]*[a-zA-Z][a-zA-Z0-9]*[0-9][a-zA-Z0-9]*|[a-zA-Z0-9]*[0-9][a-zA-Z0-9]*[a-zA-Z][a-zA-Z0-9]*)$/
Si usaras la otra opción que te mencioné, de varias regex, terminás con:
// regex de si tiene números
// regex de si tiene letras
/^[a-zA-Z0-9]+$/
Pero esto puede que no sea exactamente lo que querés; si lo que querés es una lista negra de caracteres, será:
/[@$%]/ // y, obviamente, negar el resultado de este matcheo, porque querés que en el string haya 0 de esos caracteres.
A pesar de todo eso, te vuelvo a repetir: NO HAGAS ESTO. NO LO USES. PENSÁ EN POR QUÉ LO ESTÁS HACIENDO Y DATE CUENTA QUE ESTÁ MAL. NO LIMITES LOS CARACTERES DEL PASSWORD.
Como prevención: si esto es "para que el user no pueda hacer inyeccion SQL", proveeme inmediatamente una lista de los sitios que manejás así nunca pongo un password ahí.
Saludos
--
Guillermo O. «Tordek» Freschi. Programador, Escritor, Genio Maligno.
http://tordek.com.ar :: http://twitter.com/tordek
--
Has recibido este mensaje porque estás suscrito al grupo "Grupo PHP Argentina" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a php-arg+unsubscribe@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a php...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/php-arg?hl=es.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.