Si uso string.match() con una expresión regular, recuperaré la cadena coincidente, pero no el índice en la cadena original donde ocurre la coincidencia. Si hago string.search(), obtengo el índice, pero no necesariamente sé cuánto tiempo coincide la parte correspondiente de la cadena. ¿Hay alguna manera de hacer ambas cosas, así que puedo obtener el índice final del partido en la cadena original?buscar el índice final de una expresión regular búsqueda/coincidencia
Supongo que podría hacer una después de la otra (abajo), suponiendo que devuelvan los mismos resultados pero de una manera diferente, pero eso parece feo e ineficiente, y sospecho que hay una mejor manera.
var str = "Fear leads to anger. Anger leads to hate. Hate leads to suffering";
var rgx = /l[aeiou]+d/i;
var match = str.match(rgx);
if (match && match[0]) {
var i = str.search(rgx);
console.log ("end of match is at index " + (i+match[0].length));
}
interesante ... Me di cuenta de que Chrome pone el índice en la matriz (suponiendo que no tenga una/g ... por lo que habría múltiples coincidencias y no tendría sentido tener un solo índice) . Si esto es compatible con todos los navegadores razonables (...?), Eso es perfecto. – rob