Сообщение от Aetae
|
Ну тут какбэ и indexOf обойтись можно.)
|
Сообщение от Aetae
|
// ......................
return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
// ......................
|
А если серьезно, позволю себе пару комментариев:
1. Внутри классов почти ничего маскировать не нужно. Правда, иногда для этого все должно быть на своих местах. Не нужно маскировать скобку [ если она в самом начале или после символа отрицания ^, не нужно маскировать ^ если ставить этот символ не в самое начало, не нужно маскировать минус, если ставить его в начале или в конце (но начало уже занято [ поэтому ставим в конце), остальные символы (кроме \ и возможно /) просто маскировать не нужно. Поэтому в итоге получаем:
// return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
return str.replace(/[][\/{}()*+?.\\^$|]/g, "\\$&");
2. Вариант searchBetweenReg полагается на то, что split добавляет в результирующий массив подгруппы (т.е. кусочки в скобочках) а это может быть так, а может и не быть, т.е. получается непереносимо. Значит остается первый и третий вариант.