join
на |
для чередования, так что любое слово в массиве будет совпадать.Также обязательно используйте флаг i
, чтобы сделать его нечувствительным к регистру.
Также поместите $&
в строку замены , чтобы отобразить совпадающую строку (например, чтобыпри совпадении GLOBAL
результат равен <span style="color: cyan">GLOBAL</span>
, а не <span style="color: cyan">global,warming</span>
:
var input = 'ITS GLOBAL EFFING WARMING';
var toReplace = ['global', 'warming']
var emphasisColor = 'cyan';
var regEx = new RegExp(toReplace.join('|'),"gi");
var output = input.replace(regEx, `<span style="color: ${emphasisColor}">$&</span>`);
console.log(output);
Конечно, это зависит от того, * * * * * * не имеет никаких специальных символов.Если в нем может быть больше, чем просто слово, вы можете сначала replace-escape их всех.