Это слегка измененная версия вопроса здесь . Разница в том, что я не использую специальные символы в тегах, выделенных жирным шрифтом, если они находятся спереди или сзади.
Учитывая иголку и стог сена ... Я хочу поставить жирные метки вокруг иглы. Так какое выражение регулярного выражения я бы использовал с replace ()? Я хочу, чтобы ПРОБЕЛ был разделителем, а поиск не чувствителен к регистру, и я хочу, чтобы специальные символы (такие как @! #. ()) Игнорировались при поиске
так сказать, игла "корова" и стог сена
cows, at www.cows.com, milk some COWS!
превратится в
<b>cows</b>, at www.cows.com, milk some <b>COWS</b>!
также ключевые слова должны иметь пробелы, поэтому, если ключевое слово "who is mgmt" ...
great band. who. is. mgmt btw?
превратится в
great band. <b>who. is. mgmt</b> btw?
Обратите внимание на точки выше
Я получил это в настоящее время:
function updateHaystack(input, needle) {
return input.replace(new RegExp('(^|\\s)(' + needle + ')(\\s|$)','ig'), '$1<b>$2</b>$3');
}
к сожалению, он не выделяет слова, объединенные специальным символом ... например. ! корова не превращается в !<b>cow</b>