Вы уверены, что можете сделать это!
//make a regular expression out of your needle
var needle = 'le'
var re = new RegExp(needle,'gi');
var haystack = 'I learned to play the Ukulele';
var results = new Array();//this is the results you want
while (re.exec(haystack)){
results.push(re.lastIndex);
}
Редактировать: научиться заклинанию RegExp
Кроме того, я понял, что это не точно , что вы хотите, поскольку lastIndex
говорит нам о конце иглы, а не о начале, но это близко - вы можете вставить re.lastIndex-needle.length
в результаты массив ...
Редактировать: добавить ссылку
@ В ответе Тима Дауна используется объект результатов из RegExp.exec (), и все мои ресурсы Javascript затушевывают его использование (кроме предоставления подходящей строки). Поэтому, когда он использует result.index
, это своего рода безымянный объект соответствия. В описании MDC exec они фактически описывают этот объект достаточно подробно.