@beefront17

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

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

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

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

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

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

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

Войти через TM ID
Похожие вопросы
CS Money Санкт-Петербург
от 120 000 до 150 000 руб.
Digital Sharks Казань
от 60 000 до 65 000 руб.
TopHit.ru Москва
от 90 000 до 100 000 руб.