Foros del Web » Programando para Internet » Javascript »

expresiones regulares

Estas en el tema de expresiones regulares en el foro de Javascript en Foros del Web. Hola Estoy haciendo un pequeño script para validar un formularios mediante expresiones regulares pero hay cosas que no me funcionan como por ejemplo si quisiera ...
  #1 (permalink)  
Antiguo 12/02/2007, 14:19
 
Fecha de Ingreso: junio-2006
Mensajes: 89
Antigüedad: 17 años, 10 meses
Puntos: 0
Pregunta expresiones regulares

Hola
Estoy haciendo un pequeño script para validar un formularios mediante expresiones regulares pero hay cosas que no me funcionan como por ejemplo

si quisiera que en el textInput se pudiera entrar cualquier cosa que este en el rango de la letra a a la z pondria esto
Código:
function ValidarForm(campo) {
     var RegExPattern = /[a-z]/;
    
     if ((campo.value.match(RegExPattern)) && (campo.value!='')) {
       //Esta bien
    } else {
         campo.style.border = "2px solid #ff0000";
     }
 }
El tema es que cuando escribo un caracter como &, es como si estuviera bien, cuando deberia ponerse el borde rojo de mal. ? ah la funcion es llamada en el evento onBlur del text input..

saludos
  #2 (permalink)  
Antiguo 12/02/2007, 15:14
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 4 meses
Puntos: 3
Re: expresiones regulares

function ValidarForm(campo) {
var RegExPattern = /^[a-z]+$/;

if (RegExPattern.test(campo)){
//Esta bien
} else {
campo.style.border = "2px solid #ff0000";
}
}

Tu expresion regular: /[a-z]/
No se pone el borde en rojo porque si campo es: AWDA&%$""$%%a(/)(" , existe una letra minuscula en la cadena, por lo que encaja en el patron.

Al ponerle [a-z]+ indica que pueda haber tantas letras minusculas como se quiera, pero al menos una.

^ y $ sirve para decirle que la cadena debe empezar(^) y terminar($) en letras minusculas.


Saludos.
  #3 (permalink)  
Antiguo 13/02/2007, 07:39
 
Fecha de Ingreso: junio-2006
Mensajes: 89
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: expresiones regulares

gracias wigglyUtrera por tu rapida respuesta, realmente tenia un problema de concepto.

gracias nuevamente
  #4 (permalink)  
Antiguo 14/02/2007, 08:59
 
Fecha de Ingreso: junio-2006
Mensajes: 89
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: expresiones regulares

Bueno ahora me surge otra duda
estuve usmeando por internet y me encuentro que \w+ permite cualquier letra 0 numero ahora, si a ese rango de caracteres que incluyen a \w le quisiera agregar otro, como lo haria ?

saludos
  #5 (permalink)  
Antiguo 14/02/2007, 12:20
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 4 meses
Puntos: 3
Re: expresiones regulares

[\w*_]+

Esto acepta \w,asteriscos y subrayados todas las veces que quieras, al menos una

Saludos
  #6 (permalink)  
Antiguo 14/02/2007, 14:11
 
Fecha de Ingreso: junio-2006
Mensajes: 89
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: expresiones regulares

ya entendi,, agregar dentro del corchete todo lo permitido como rango y por fuera un + para indicar una o mas veces en la expresion de cualquiera de los elementos del rango.

gracias nuevamente wigglyUtrera
  #7 (permalink)  
Antiguo 14/02/2007, 15:42
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: expresiones regulares

Una cosa:
Cita:
[\w*_]+
¿No sería mas bien [\w\*_]+ ? El asterísco si no se toma como cuantificador, ¿no?
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #8 (permalink)  
Antiguo 14/02/2007, 15:54
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 4 meses
Puntos: 3
Re: expresiones regulares

Yo lo he probado con el punto: [.] = [\.]

No se como interpretará el asterisco. Si no funciona * prueba con \*

jejejeje


Saludos
  #9 (permalink)  
Antiguo 14/02/2007, 16:05
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 4 meses
Puntos: 3
Re: expresiones regulares

Haciendo pruebas he visto que no hace falta la barra invertida \

aunque es lo mismo si se pone o no.



Saludos.
  #10 (permalink)  
Antiguo 15/02/2007, 18: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: expresiones regulares

Pues sí, es cierto, yo también lo he comprobado.

Debe ser que todo lo que esté dentro de los [ ] se toma como literal.

Sí, ya lo he buscado:
Cita:
Iniciado por http://www.manualdephp.com/codigos-php/expresiones-regulares-php.html
Una cuestión a recordar es que las reglas de sintaxis de las expresiones regulares no se aplican igual dentro de los corchetes. Por ejemplo, el metacarácter ^ no sirve aqui de ancla, sino de caracter negador. Tampoco es necesario escapar todos los metacaracteres con la barra invertida. Solo será necesario escapar los siguientes metacaracteres: ] ^ -

El resto de metacaracteres pueden incluirse ya que son considerados -dentro de los corchetes- caracteres normales.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #11 (permalink)  
Antiguo 15/02/2007, 18:04
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 4 meses
Puntos: 3
Re: expresiones regulares

Buena informacion. Importante eso de:

Cita:
Solo será necesario escapar los siguientes metacaracteres: ] ^ -
Importantes para los que hagan examenes de expresiones regulares.

Lo digo por experiencia, jejeje.


Saludos
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 23:41.