@beefront17

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

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

Спасибо
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
M4mkin_pr0ger
@M4mkin_pr0ger
Хачу пырфоманс
Если правильно понял, то поможет экранирование: "\" перед "проблемным" символом

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

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

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

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

Войти через центр авторизации
Похожие вопросы