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. Muy buenas gente, Estoy creando unas expresiones regulares para la validacion de formularios y me he encontrado con una duda. Resulta que hasta ahora todas ...
  #1 (permalink)  
Antiguo 15/04/2010, 05:32
 
Fecha de Ingreso: abril-2010
Mensajes: 7
Antigüedad: 14 años, 7 meses
Puntos: 0
Expresiones regulares

Muy buenas gente,

Estoy creando unas expresiones regulares para la validacion de formularios y me he encontrado con una duda.

Resulta que hasta ahora todas las expresiones regulares que genero, el codido en dreamweaver esta en color verde.

ejemplo : var extresion_regular = /^ exresion $/; Esto ultimo despues del = en verde.

Ahora bien, la ultima expresion que he generado el codigo no esta en verde, aunque funciona perfectamente.

Alquien sabe cual es el motivo?, quiza exista algun error en la ultima expresion? Me tiene algo descondertado la verdad.

Muchas gracias a todos,

Al
  #2 (permalink)  
Antiguo 15/04/2010, 08:15
 
Fecha de Ingreso: febrero-2010
Mensajes: 7
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Expresiones regulares

eso se debe a que falta cerrar alguna seccion del codigo
revisa que todo este cerrado como debe de ser
  #3 (permalink)  
Antiguo 15/04/2010, 09:01
 
Fecha de Ingreso: abril-2010
Mensajes: 7
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Expresiones regulares

Primero muchas gracias xRommelx por tu respuesta.

Por mas que miro y remiro la expresion regular no le veo ningun error, lo cual no quiere decir que no lo tenga. Puede alguien echarle un vistazo y decirme si ve alguno. Como he dicho antes valida el campo que quiero perfectamente, sin errores.

var card = /^([A-Za-z]{1}[A-Za-z0-9]{4} {1}[A-Za-z0-9]{5} {1}[A-Za-z0-9]{3}\d{1}[!&@]{1})$|([A-Za-z]{1}[A-Za-z0-9]{4}[A-Za-z0-9]{5}[A-Za-z0-9]{3}\d{1}[!&@]{1})$/;


Muchas gracias
  #4 (permalink)  
Antiguo 15/04/2010, 10:40
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Expresiones regulares

No dudo que funcione, pero parece más complejo de lo que debería ser. Quizás eso confunde al programa. A simple vista "{4}{1}" es sintaxis errónea, creo que debería interpretarse como "un patrón vacío una vez" o quizás "todo lo anterior una vez". ¿con qué motivo lo usas tú?

Saludos.
  #5 (permalink)  
Antiguo 15/04/2010, 14:32
 
Fecha de Ingreso: abril-2010
Mensajes: 7
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Expresiones regulares

Gracias por tu respuesta AlvaroG,

El "{4}{1}" es "[A-Za-z0-9]{4} {1}", es decir grupo de 4 letras o numeros (mayusculas o minisculas) mas un espacio en blanco. Vamos que el "{4}{1}" no estan justos, tienes una espacio en blanco. Aunque realmente tienes razon, el "{1}" sobra ya que simplemente con dejar el espacio en blanco vale. Lo he probado y parece que funcina como antes aunque el color sigue sin cambiar a verde. En fin, que estamos igual pero con un codigo mas corrrecto (creo, puede alguien confirmarmelo?).

Muchas gracias por tu ayuda. Se le ocurre a alguien algo mas? ya que el codigo sigue pareciendo que tiene una estructura incorrecta.
  #6 (permalink)  
Antiguo 15/04/2010, 21:28
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Expresiones regulares

Ahora entiendo: pensé que estaban pegados :) Es redundante pero no está mal, entonces. Siendo una expresión tan compleja será mejor que la dejes como la entiendas mejor.

Sigo pensando que simplemente el programa se confunde al ver una expresión complicada, y que no es algo de lo que deberías preocuparte, máxime cuando funciona bien. Tené en cuenta que los resaltadores de sintaxis se basan en reglas simples, así que bien podría estar fallando alguna de ellas en el Dreamweaver.

Te propongo una prueba: ponela de a partes, y fijate cuándo el programa deja de marcarla como correcta. Es decir, probá cosas así:

var card = /^([A-Za-z]{1}[A-Za-z0-9]{4}$/;
var card = /^([A-Za-z]{1}[A-Za-z0-9]{4} {1}[A-Za-z0-9]{5}$/;
...

hasta dejarla como debe ser.


Saludos.
  #7 (permalink)  
Antiguo 16/04/2010, 00:39
 
Fecha de Ingreso: abril-2010
Mensajes: 7
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Expresiones regulares

Gracias otra vez AlvaroG,

Ya probe lo que me dices y cambia de color justo al poner algo mas aqui

var card = /^([A-Za-z]{1}[A-Za-z0-9]{4} {1}[A-Za-z0-9]{5} {1}[A-Za-z0-9]{3}\d{1}[!&@]{1})$|([A-Za-z]{1}[A-Z

Da igual lo que pongas, cambia de color. Podria ser que a partir de un cierto numero de caracteres dreamwever se "confunde" como tu dices?. Interesante.

He abierto la funcion con adobeGolive y esta perfecta, sin porblemas. Vamos que como la expresion valida lo que quiero pues asi se queda, no voy a tocar mas que tal vez luego no valide bien.

En fin que muchas gracias a todos por vuestra ayuda.

Un saludo.

Etiquetas: expresiones, regulares
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 13:03.