Foros del Web » Programando para Internet » Javascript »

problema con expresion regular

Estas en el tema de problema con expresion regular en el foro de Javascript en Foros del Web. Hola, tengo la siguiente expresion regular: Código PHP: var  expre  = /[( 0 - 9a - zA - Z )( áéíóúñÁÉÍÚÓÑ )( s .)]/;  La cual ...
  #1 (permalink)  
Antiguo 08/12/2007, 18:43
Avatar de Snd234  
Fecha de Ingreso: mayo-2007
Ubicación: Frente al PC
Mensajes: 413
Antigüedad: 17 años
Puntos: 2
problema con expresion regular

Hola, tengo la siguiente expresion regular:
Código PHP:
var expre = /[(0-9a-zA-Z)(áéíóúñÁÉÍÚÓÑ)(s.)]/; 
La cual me servira para validar el nombre y apellido de una persona que quiera registrarse, y de esta forma ingresar solo caracteres validos para esos tipos de datos.

Luego, para realizar la validacion uso
Código PHP:
expre.test(nombre); 
Sin embargo, ingresando por ejemplo "juan!@?¿pablo" me la valida como correcta, siendo que deberia ser todo lo contrario.

Esta bien hecha la expresion o que esta fallando?????
__________________
KIBIT.cl
  #2 (permalink)  
Antiguo 08/12/2007, 21:02
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: problema con expresion regular

Qué tal Snd234:

Ocurre que tu expresión regular no estás delimitandola, es decir, no hay marcas de inicio de string (^) y de final ($), luego por ejemplo /a/ encajará con casa, y con qqqaqq, mientras exista una a encaja.

Luego tu expresión regular creo que quedaría así:
Código:
var expre = /^[(\w)(áéíóúüñ)(\s\.)]{5,40}$/i;

Supongo que la s y el punto del final son con contrabarra delante. Como ves el foro aún no permite que con las etiquetas [ PHP ] se representen bien esos caracteres. Por otra parte te recuerdo el modificador i para no tener que alargar la sentencia con mayúsculas y minúsculas, y el alfanumérico \w, que es equivalente a [A-Za-z0-9_] (aunque quizás no te interese el guión bajo ahora que lo pienso...). Creo que te falta también el caracter ü, aunque no se me ocurren ahora apellidos con ü...



Un saludo
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #3 (permalink)  
Antiguo 09/12/2007, 12:38
Avatar de Snd234  
Fecha de Ingreso: mayo-2007
Ubicación: Frente al PC
Mensajes: 413
Antigüedad: 17 años
Puntos: 2
Re: problema con expresion regular

Vamos a probar, gracias ;)

Pero como puedo hacer para que no valide los caracteres ( ), ya que esa misma expresion los deja pasar...
__________________
KIBIT.cl

Última edición por Snd234; 09/12/2007 a las 12:57
  #4 (permalink)  
Antiguo 09/12/2007, 16:47
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: problema con expresion regular

Hola de nuevo.

Símplemente elimínalos de la expresión regular. Dentro de los corchetes no hay que escaparlos, se toman en cuenta como caracteres normales, y no tienen sentido. El corchete significa cualquier carácter dentro de ellos, y no se pueden agrupar conjuntos. Otra cosa sería ponerlo sin corchetes de esta manera (\w|á|é|í...) pero no es demasiado cómoda...

Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
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 04:59.