Próbuję znaleźć pozycje wszystkich wystąpień ciągu w innym ciągu, bez uwzględniania wielkości liter.
Na przykład, biorąc pod uwagę ciąg:
Nauczyłem się grać na ukulele w Libanie.
i ciąg wyszukiwania le
, chcę uzyskać tablicę:
[2, 25, 27, 33]
Oba łańcuchy będą zmiennymi - tj. Nie mogę zakodować ich wartości na stałe.
Pomyślałem, że to łatwe zadanie w przypadku wyrażeń regularnych, ale po dłuższej walce ze znalezieniem takiego, który zadziała, nie miałem szczęścia.
Znalazłem przykład, jak to zrobić .indexOf()
, ale z pewnością musi być bardziej zwięzły sposób, aby to zrobić?
le
tutaj ciąg zmiennych? Nawet podczas korzystanianew Regexp(str);
z niebezpieczeństwa znaków specjalnych czai się$2.50
na przykład szukając . Coś takiegoregex = new Regexp(dynamicstring.replace(/([\\.+*?\\[^\\]$(){}=!<>|:])/g, '\\$1'));
byłoby bliższe IMHO. Nie jestem pewien, czy js ma wbudowany mechanizm ucieczki wyrażeń regularnych.