8

How can I retrieve multiple indexes from multiple instances of a string search?

var str = "food";
var index1 = str.search("o"); // 1
var index2 = str.search("o"); // ?

Thanks much, Wen

Wenn
  • 339
  • 2
  • 4
  • 14

2 Answers2

15

I think the best way to do this for strings of non-trivial length is the RegExp.exec() function:

var str = "Foooooooood!",
    re = /o/g,
    match;
while (match = re.exec(str)) {
    console.log(match.index); // logs 1 through 9
}
nrabinowitz
  • 55,314
  • 10
  • 149
  • 165
8

You can use second parameter of indexOf method to achieve what you want:

var str = "food",
    index1 = str.indexOf("o"),
    index2 = str.indexOf("o", index1+1);
bjornd
  • 22,397
  • 4
  • 57
  • 73