Задать вопрос
azovl
@azovl

Переменная внутри regex — не работает?

Переменная внутри regex не работает... Не могу определить почему?

var htmlContent = selectorArea[k].innerHTML;
var regex = "/(?!\.)(?!\-)(?!\/)(?!\&)" + words[q] + "(?!\.)(?!\/)(?!\&)(?!\-)/";
var re = new RegExp(regex,"g");
selectorArea[k].innerHTML = htmlContent.replace(re, "<span class='highlight'>" + words[q] + "</span>");


Проверял, вот так работает (без переменной):
var regex = /(?!\.)(?!\-)(?!\/)(?!\&)someWord(?!\.)(?!\/)(?!\&)(?!\-)/;
// or
var regex = "someWord";


Проблема в конкатенации к переменной частей regex. Признателен за ответы.
  • Вопрос задан
  • 112 просмотров
Подписаться 1 Простой 6 комментариев
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
Решения вопроса 1
@good_beginer
let sameWord = 'string';
let regex = new Regex(`/(?!\\.)(?!\\-)(?!\\/)(?!\\&)${someWord}(?!\\.)(?!\\/)(?!\\&)(?!\\-)/`, 'g');
regex.test('string');


где someWord это переменная
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы