Saya mencoba untuk menemukan posisi dari semua kemunculan string dalam string lain, case-insensitive.
Misalnya, diberikan string:
Saya belajar memainkan Ukulele di Lebanon.
dan string pencarian le
, saya ingin mendapatkan array:
[2, 25, 27, 33]
Kedua string tersebut akan menjadi variabel - yaitu, saya tidak dapat membuat kode keras nilainya.
Saya pikir ini adalah tugas yang mudah untuk ekspresi reguler, tetapi setelah berjuang beberapa saat untuk menemukan yang akan berhasil, saya tidak beruntung.
Saya menemukan contoh cara melakukannya dengan menggunakan .indexOf()
, tetapi tentunya harus ada cara yang lebih ringkas untuk melakukannya?
le
menjadi string variabel di sini? Bahkan saat menggunakannew Regexp(str);
bahaya karakter khusus mengintai, mencari$2.50
misalnya. Sesuatu sepertiregex = new Regexp(dynamicstring.replace(/([\\.+*?\\[^\\]$(){}=!<>|:])/g, '\\$1'));
akan IMHO lebih dekat. Saya tidak yakin apakah js memiliki mekanisme pelolosan regex bawaan.