Я намагаюся знайти позиції всіх входжень рядка в іншій рядку, не залежною від регістру.
Наприклад, з урахуванням рядка:
Я навчився грати на укулеле в Лівані.
і рядок пошуку le
, я хочу отримати масив:
[2, 25, 27, 33]
Обидва рядки будуть змінними - тобто я не можу жорстко кодувати їх значення.
Я подумав, що це легке завдання для регулярних виразів, але, побившись деякий час, щоб знайти той, який би спрацював, мені не пощастило.
Я знайшов цей приклад, як це досягти, використовуючи .indexOf()
, але, безумовно, повинен бути більш стислий спосіб зробити це?
le
тут був змінний рядок? Навіть при використанніnew Regexp(str);
небезпеки особливі символи ховаються, шукаючи$2.50
наприклад. Щось подібнеregex = new Regexp(dynamicstring.replace(/([\\.+*?\\[^\\]$(){}=!<>|:])/g, '\\$1'));
було б ближче IMHO. Я не впевнений, чи є у js вбудований механізм виходу з регулярних виразів.