@beefront17

Ломается регулярка когда есть специальные символы, js?

Добрый день! Cкажите пожалуйста как исправить, ломается регулярка когда есть какие-то специальные символы в строке. Например - @#$%^:)(
Как исправить, чтобы регулярка не обращала на это внимание?
Регулярка виглядит просто
const text = ':)test'
const reg = new RegExp(text, 'g'),

Спасибо
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
M4mkin_pr0ger
@M4mkin_pr0ger
Представитель программистских меньшинств
Если правильно понял, то поможет экранирование: "\" перед "проблемным" символом

Смастерил регулярку:
'строка'.replace(/[\[\]\(\)\/\.\$\*\+\|\^]/g,'\\$&'); // v3.0

этот relase позволяет заэкранировать все спец. символы регулярных выражений в строке.
Баг: неадекватно реагирует на "\"

попробуйте теперь так:
const text = ':)test'
const reg = new RegExp(text.replace(/[\[\\\\/^\$\.\|\?\*\+\(\)\]]/g,'\\$&'), 'g'),
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
IBC Human Resources Екатеринбург
от 80 000 руб.
Apsis Ростов-на-Дону
от 85 000 руб.
23 марта 2019, в 16:34
700 руб./за проект
23 марта 2019, в 15:42
400 руб./в час