Foros del Web » Programando para Internet » Javascript »

como saber en que posicion encontro la palabra en la funcion Match? de javascript?

Estas en el tema de como saber en que posicion encontro la palabra en la funcion Match? de javascript? en el foro de Javascript en Foros del Web. por ejemplo @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original url = url. match ( "http://www.youtube.com/v/" ) ; necesito saber la posicion donde encontro la cadena ...
  #1 (permalink)  
Antiguo 22/08/2012, 22:29
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
como saber en que posicion encontro la palabra en la funcion Match? de javascript?

por ejemplo
Código Javascript:
Ver original
  1. url=url.match("http://www.youtube.com/v/");

necesito saber la posicion donde encontro la cadena esa si es que la encontro.
para obtener el id apartir de alli.
que son solo 11 caracteres. todos los id de youtube solo tienen 11 caracteres.
por favor. gracias
  #2 (permalink)  
Antiguo 23/08/2012, 00:50
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: como saber en que posicion encontro la palabra en la funcion Match? de jav

buenas...
no creo que match sea tu mejor aliado para este caso debido a la forma como funciona. para obtener la posición ‒ o índice ‒ de la coincidencia con match, el patrón no puede ser global. pero entonces, si el patrón no es global, solo obtienes la primera coincidencia, no importa cuantas veces lo invoques.
Código:
// en este ejemplo voy a usar variables para demostrar que los estados no se mantienen ;
var txt = "texto_nµ€þø";
var regex = /\W/;
var match01 = txt.match(regex);
var match02 = txt.match(regex);
si exploras en una consola las variables match01 y match02, ambas tienen el mismo resultado: un array de un solo elemento con el símbolo micro ‒ µ ‒, y una propiedad adicional que indica la posición de la coincidencia — index — con el valor siete. si intentas el mismo ejemplo pero con un patrón global /\W/g, las variables representarían un array de cuatro elementos: µ, €, þ, ø. a diferencia del anterior, esta vez no tiene la propiedad index, por tanto es imposible saber las posiciones.

en este caso, tu mejor aliado es el método exec de las expresiones regulares. exec, además de informarte de la posición, te permite ir coincidencia por coincidencia en pasos. adaptando el ejemplo anterior:

Código:
var txt = "texto_nµ€þø", regex = /\W/g, match;
while(match = regex.exec(txt)) console.log(match.index);
// en consola se imprime: 7, 8, 9, 10
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: match, posicion, cadenas
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 16:54.