Замените все вхождения слова тегом span вокруг этого слова. Без учета регистра - PullRequest
0 голосов
/ 08 апреля 2019

Я хочу обернуть все вхождения слова в строку тегами span. Независимо от чувствительности к регистру. И интервал должен быть обернут вокруг фактического слова произошло И слово переменное.

let title = "TEST word test word Test word tesT";
let regex = new RegExp(keyword, "g");
let titleToDisplay = title.replace(regex, `<span class="searchedTerm">${keyword}</span>`);
//here keyword is 'test' for example. i want to wrap all the occurrences with span.

Ответы [ 2 ]

0 голосов
/ 08 апреля 2019

Вы можете использовать " переключение слов в строках ".

По сути, оберните ключевое слово (каким бы оно ни было) в скобках и используйте $1, чтобы заменить его на фактическоеслово.

let keyword = 'test';
let title = "TEST word test word Test word tesT";
let regex = new RegExp(`(${keyword})`, "ig");
let titleToDisplay = title.replace(regex, '<span class="searchedTerm">$1</span>');
console.log(titleToDisplay);
0 голосов
/ 08 апреля 2019

Вы можете сопоставить слово test глобально и игнорировать регистр, передав 'gi' в качестве второго аргумента конструктору RegExp.Затем используйте $& для ссылки на соответствующее ключевое слово, например

let title = "TEST word test word Test word tesT";
let regex = new RegExp(/test/, "gi");
let titleToDisplay = title.replace(regex, '<span class="searchedTerm">$&</span>');
console.log(titleToDisplay);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...