Foros del Web » Programando para Internet » Javascript »

Duda con expresión regular

Estas en el tema de Duda con expresión regular en el foro de Javascript en Foros del Web. Hola buenas, tengo una duda con el siguiente código, puesto que si no descomento las líneas con compile() parece que no funcionan correctamente dichas líneas ...
  #1 (permalink)  
Antiguo 25/05/2011, 11:20
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 22 años, 7 meses
Puntos: 8
Duda con expresión regular

Hola buenas, tengo una duda con el siguiente código, puesto que si no descomento las líneas con compile() parece que no funcionan correctamente dichas líneas ¿?

Código:
// Cadenas de caracteres:
var cadena01 = "Cursos de informatica gratis";
var cadena02 = "25/05/2011";

// Realizan lo mismo:
var patron01 = /gratis/gi;
var patron02 = new RegExp("gratis", "gi");

// Realizan lo mismo:
var patron03 = /^[a-zA-Z\s]*$/;
var patron04 = new RegExp("^[a-zA-Z\s]*$");
//patron04.compile();

var patron05 = /^\d{2}\/\d{2}\/\d{4}$/;
var patron06 = new RegExp("^\d{2}\/\d{2}\/\d{4}$");
//patron06.compile();

document.write( "CADENA: [" + cadena01 + "]<br />" );
document.write( "Cadena modificada: [" + patron01.test(cadena01) + "]<br />" );
document.write( "Cadena modificada: [" + patron02.test(cadena01) + "]<br />" );
document.write( "Cadena modificada: [" + patron03.test(cadena01) + "]<br />" );
document.write( "Cadena modificada: [" + patron04.test(cadena01) + "]<p />" );

document.write( "CADENA: [" + cadena02 + "]<br />" );
document.write( "Cadena modificada: [" + patron05.test(cadena02) + "]<br />" );
document.write( "Cadena modificada: [" + patron06.test(cadena02) + "]<br />" );
He probado con compile() simplemente por probar, ya que tengo entendido que no es necesario más que cuando se cambia el patrón en una variable.

Gracias.
  #2 (permalink)  
Antiguo 25/05/2011, 12:15
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años, 6 meses
Puntos: 343
Respuesta: Duda con expresión regular

Tenés que escapar los slashes:

Código Javascript:
Ver original
  1. var patron03 = /^[a-zA-Z\s]*$/;
  2. var patron04 = new RegExp("^[a-zA-Z\s]*$");
  3. console.log(patron03.toString() == patron04.toString()); // false
  4.  
  5. var patron03 = /^[a-zA-Z\s]*$/;
  6. var patron04 = new RegExp("^[a-zA-Z\\s]*$");
  7. console.log(patron03.toString() == patron04.toString()); // true
__________________
blog | @aijoona
  #3 (permalink)  
Antiguo 25/05/2011, 12:39
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Duda con expresión regular

sólo a modo de apunte, el método complile() está obsoleto, hay que usar el constructor
  #4 (permalink)  
Antiguo 25/05/2011, 13:11
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 22 años, 7 meses
Puntos: 8
Respuesta: Duda con expresión regular

Efectivamente era tema de escapar la barra inversa, gracias a ambos !

Etiquetas: regular
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 10:38.