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. Признателен за ответы.
  • Вопрос задан
  • 105 просмотров
Решения вопроса 1
@good_beginer
let sameWord = 'string';
let regex = new Regex(`/(?!\\.)(?!\\-)(?!\\/)(?!\\&)${someWord}(?!\\.)(?!\\/)(?!\\&)(?!\\-)/`, 'g');
regex.test('string');


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

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

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