Eğer regex ile string.match() kullanırsam, eşleşen dizeyi geri alırım, ancak dizini eşleşmenin oluştuğu orijinal dizeye geri döndürmezim. String.search() işlevini kullanırsam, dizini alırım, ancak dizenin eşleşen bölümünün ne kadar uzun olduğunu bilmiyorum. Her ikisini de yapmanın bir yolu var, bu yüzden orijinal dizideki endeksini alabilir miyim?Düzenli ifade arama/eşlemenin son dizinini bulma
Sanırım, aynı sonuçları döndürdüğü varsayımıyla, ancak farklı bir şekilde kabul ettiğimden ötekini (aşağıdan) sonra yapabilirim, ama bu çirkin ve verimsiz gibi gözüküyor ve daha iyi bir yol olduğundan şüpheleniyorum. Alternatif olarak
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));
}
enteresan .... Bu dizinin dizine Chrome'u eklediğini fark ettim (bir/g değeriniz olmadığını varsayarak ... bu sayede birden fazla eşleşme olacak ve tek bir dizinin olması mantıklı olmayacaktır) . Bu tüm makul tarayıcılar tarafından destekleniyorsa (...?), Bu mükemmel. – rob