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. Buenas, tengo una pequeña duda, supuestamente una expresion regular devuelve una matriz con los elementos que coinciden con la expresion, lo que nose es como ...
  #1 (permalink)  
Antiguo 16/04/2004, 01:58
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 22 años, 6 meses
Puntos: 5
Expresiones regulares

Buenas, tengo una pequeña duda, supuestamente una expresion regular devuelve una matriz con los elementos que coinciden con la expresion, lo que nose es como hacerlo, estoy haciendo uso de:

Código PHP:
var str "=hola&=adios&";

// Expresion regular
var reg = /=w&/;

alert(reg.exec(str)); 
Supuestamente eso me deberia devolver una matriz con dos elementos no? que seria el elemento 0 de la matriz seria hola y el 1 seria adios.

Pero no funciona ... y estoy algo mosca por que no se el porque jeje asi que si alguien me lo pudiera aclarar o recomendarme algun manual sobre expresiones regulares para JS se lo agradeceria, de todos modos me estoy mirando la referencia oficial de Netscape en: http://devedge.netscape.com/library/...ce/regexp.html

Gracias de antemano
__________________
Usuario registrado de Linux #288725
  #2 (permalink)  
Antiguo 16/04/2004, 19:31
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
Pues vaya vaya... ahora tengo la misma duda que tu.. He estado investigando pero no he sacado nada en claro. Lo que si se es que si le pones una g al final del todo a la expresion regular (global) le puedes hacer el exec dos veces para que te devuelva el adios.

Nose, tiene que haber un metodo que te devuelva un array. En la referencia esa el codigo:

Código PHP:
<SCRIPT LANGUAGE="JavaScript1.2">
//Match one d followed by one or more b's followed by one d
//Remember matched b's and the following d
//Ignore case
myRe=/d(b+)(d)/ig;
myArray myRe.exec("cdbBdbsbz");
</SCRIPT> 
devuelve perfectamente un array. Pero no se lo que tiene de especial, he intentado hacer lo mismo con tu script y no he podido. Quizas sean los parentesis, aunque lo he probado y no...

A ver si alguien puede solucionar esto. Eruditos esperamos respuestas
__________________
- 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 17/04/2004, 01:16
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola epplestun y derkenuke :

Con match se consigue:

var str = "=hola&=adios&";

// Expresion regular
var reg = /\w+/g;

alert(str.match(reg));

Aunque como delimitador se puede usar cualquier cosa que no sean caracteres...

var str = "hola adios";
sería suficiente.

Saludos
  #4 (permalink)  
Antiguo 17/04/2004, 18:23
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
No lo entiendo, ¿entonces match devueve arrays y exec no? ¿Porque en el ejemplo que he posteado se devuelve array con exec y en el de epplestun no?
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.

Última edición por derkenuke; 17/04/2004 a las 18:32
  #5 (permalink)  
Antiguo 18/04/2004, 02:26
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Por la información que tengo, solo tendría que ponerle la barrita a la "w" para obtener un array:

var reg = /=\w+&/;

Pero lo probé y solo devuelve un array de un solo elemento...

Saludos
  #6 (permalink)  
Antiguo 18/04/2004, 16:34
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Una forma más sencilla de obtener el array es:

var str = "=hola&=adios&";

// Expresion regular
var reg = /\W/;

alert(str.split(reg));

Saludos
  #7 (permalink)  
Antiguo 19/04/2004, 00:16
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 22 años, 6 meses
Puntos: 5
Muchas gracias, estube investigando y llege a la conclusion de caricatos jeje pero como no tenia conexion a internet pos no pude comentarlo jeje

Un saludo y muchas gracias por todo
__________________
Usuario registrado de Linux #288725
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 00:03.