Sto cercando di trovare le posizioni di tutte le occorrenze di una stringa in un'altra stringa, senza distinzione tra maiuscole e minuscole.
Ad esempio, data la stringa:
Ho imparato a suonare l'ukulele in Libano.
e la stringa di ricerca le
, voglio ottenere l'array:
[2, 25, 27, 33]
Entrambe le stringhe saranno variabili, ovvero non posso codificare i loro valori.
Ho pensato che questo fosse un compito facile per le espressioni regolari, ma dopo aver lottato per un po 'per trovarne uno che funzionasse, non ho avuto fortuna.
Ho trovato questo esempio di come eseguire questo utilizzo .indexOf()
, ma sicuramente ci deve essere un modo più conciso per farlo?
le
una stringa variabile qui? Anche quando si utilizzanew Regexp(str);
il pericolo di caratteri speciali è in agguato,$2.50
ad esempio la ricerca. Qualcosa di simileregex = new Regexp(dynamicstring.replace(/([\\.+*?\\[^\\]$(){}=!<>|:])/g, '\\$1'));
sarebbe più vicino IMHO. Non sono sicuro che js abbia un meccanismo di escape delle espressioni regolari incorporato.