Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Почему не работает регулярка? (https://javascript.ru/forum/misc/57134-pochemu-ne-rabotaet-regulyarka.html)

Armen 21.07.2015 14:29

Почему не работает регулярка?
 
Здравствуйте, подскажите пожалуйста, есть такое выражение, которое ищет любой символ в заданной строке и если находит, то выделяет это слово или букву жирным.
this.searchContact = function (whatToLook, whereToLook) {
        var str = whereToLook,
            newStr = str;

        var pattern = new RegExp(whatToLook, "gi");
        var searchStr = str.search(pattern, '<strong>$&</strong>');

        if (searchStr != -1 && whatToLook != "")
            newStr = str.replace(pattern, '<strong>$&</strong>');
        else
            newStr = str;

        return newStr;


    };

Вопрос: если я передаю выражению скобку ( или ), то появляетсяошибка. Подскажите ,как пофиксить, экранировать не получается и encode тоже.

Armen 21.07.2015 14:48

сделал так
new RegExp(whatToLook.replace(/[[\]{}()*+?.\\|^$\-,&#\s]/g, "\\$&"), "gi"),

рони 21.07.2015 14:48

в
Цитата:

Сообщение от Armen
whatToLook

надо перезаписать символы [ \ ^ $ . | ? * + ( ) на слеш + символ


Часовой пояс GMT +3, время: 23:45.