Estou tentando encontrar as posições de todas as ocorrências de uma string em outra string, sem distinção entre maiúsculas e minúsculas.
Por exemplo, dada a string:
Aprendi a tocar Ukulele no Líbano.
e a string de pesquisa le
, desejo obter a matriz:
[2, 25, 27, 33]
Ambas as strings serão variáveis - ou seja, não posso codificar seus valores.
Achei que fosse uma tarefa fácil para expressões regulares, mas depois de lutar por um tempo para encontrar uma que funcionasse, não tive sorte.
Achei esse exemplo de como fazer isso usando .indexOf()
, mas com certeza tem que haver uma maneira mais concisa de fazer isso?
le
uma string variável aqui? Mesmo quando usandonew Regexp(str);
o perigo de caracteres especiais está à espreita, procurando$2.50
por exemplo. Algo comoregex = new Regexp(dynamicstring.replace(/([\\.+*?\\[^\\]$(){}=!<>|:])/g, '\\$1'));
seria IMHO mais perto. Não tenho certeza se js tem um mecanismo de escape regex integrado.