Foros del Web » Programando para Internet » Javascript »

Duda sobre método match(/#(\w.+)/)

Estas en el tema de Duda sobre método match(/#(\w.+)/) en el foro de Javascript en Foros del Web. Hola, estoy teniendo un problema con este método. Alguien me puede decir qué significa esto.... "cid=window.location.toString().match(/#(\w.+)/);" si no me equivoco con "window.location.toString()" se obtiene la ...
  #1 (permalink)  
Antiguo 17/02/2005, 11:46
 
Fecha de Ingreso: enero-2005
Mensajes: 34
Antigüedad: 19 años, 3 meses
Puntos: 1
Duda sobre método match(/#(\w.+)/)

Hola,

estoy teniendo un problema con este método. Alguien me puede decir qué significa esto....

"cid=window.location.toString().match(/#(\w.+)/);"

si no me equivoco con "window.location.toString()" se obtiene la direccion de la pagina actual. Tb se que el metodo match devuelve una matriz con los valores coincidentes, buscados en una cadena

entonces... lo escrito arriba busca (y devuelve si la encuentra, sino devuelve un null) una matriz que contiene una cadena con los caracteres consecutivos /#(\w.+)/ dentro de la direccion de la pagina?¿??

Última edición por andreusup; 17/02/2005 a las 14:45
  #2 (permalink)  
Antiguo 17/02/2005, 12:57
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
No, andreusup, no busca esos caracteres; son lo que se llama una "expresión regular" (regular expression). Es una especie de comodín, pero no te puedo ayudar más con eso. Busca información sobre expresiones regulares.
__________________
Angel :cool:
  #3 (permalink)  
Antiguo 17/02/2005, 13:20
 
Fecha de Ingreso: enero-2005
Mensajes: 34
Antigüedad: 19 años, 3 meses
Puntos: 1
gracias, me pongo a ello
  #4 (permalink)  
Antiguo 17/02/2005, 15:00
 
Fecha de Ingreso: enero-2005
Mensajes: 34
Antigüedad: 19 años, 3 meses
Puntos: 1
aqui de nuevo...

supongamos que window.location.toString() devuelve http://localhost/pruebas/pagina.php#unaparte

entonces al aplicar match(/#(\w.+)/) sobre esa cadena, es decir cid=window.location.toString().match(/#(\w.+)/);

en cid[0] tendria #unaparte, y en el resto de posiciones de la matriz... o quizas no tenga ninguna mas ya que no encontro ninguna subcadena dentro de la cadena recuperada.

uff,
  #5 (permalink)  
Antiguo 17/02/2005, 17:02
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Veamos
He consultado mi manual de JS y dice para las expresiones regulares:
/ / delimitan un texto (como si fuesen las comillas en JS)
( ) agrupan
\w = una letra, número o guión bajo (_)
. = cualquier carácter (excepto salto de línea)
+ = repetir una o más veces

De lo cual deduzco que la expresión /#(\w.+)/
debe significar:
buscar algo que comience por #
y vaya seguido de un carácter y todos los que sean
Es decir, con http://loquesea#unaparte
devolverá una matriz de un solo elemento, cuyo valor es "#unaparte"
Si fuera http://loquesea#unaparte#otraparte
(lo cual no sé si tiene algún sentido en html)
devolverá una matriz de dos elementos,
["#unaparte", "#otraparte"]

¿Para qué vale esto? ni idea
Para lo primero, bastaría con
window.location.hash

Además, window.location es ya una cadena de texto, sobra el .toString()
__________________
Angel :cool:
  #6 (permalink)  
Antiguo 17/02/2005, 17:12
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
¡pues no!

Lo he probado y no funciona así, sino que
con http://loquesea#unaparte
devuelve [#unaparte,unaparte]
y con http://loquesea#unaparte#otraparte
devuelve [#unaparte#otraparte,unaparte#otraparte]

__________________
Angel :cool:
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 01:40.