Я хотел бы оставить комментарий, но стек не позволяет мне, или я не могу найти кнопку для этого, поэтому должен сделать это в ответе.Есть проблема со скриптом.например: выделение лисы в следующей строке:
<img src="brown fox.jpg" title="The brown fox" /><p>some text containing fox.</p>
сломает тег img:
var term = "fox";
term = term.replace(/(\s+)/,"(<[^>]+>)*$1(<[^>]+>)*");
var pattern = new RegExp("("+term+")", "i");
src_str ='<img src="brown fox.jpg" title="The brown fox" />'
+'<p>some text containing fox.</p>'
src_str = src_str.replace(pattern, "<mark>$1</mark>");
src_str = src_str.replace(/(<mark>[^<>]*)((<[^>]+>)+)([^<>]*<\/mark>)/,"$1</mark>$2<mark>$4");
src_str
Я работал над сценарием выделения и решил, что проблема, не реализующая сценарий, можетдолжны выделить несколько тегов.Вот как я понял, чтобы не уничтожать теги, пытаясь выделить контент внутри тегов, этот скрипт также выделяет несколько экземпляров внутри контента, но не над несколькими тегами:
str='<img src="brown fox.jpg" title="The brown fox" />'
+'<p>some text containing fox. And onother fox.</p>'
var word="fox";
word="(\\b"+
word.replace(/([{}()[\]\\.?*+^$|=!:~-])/g, "\\$1")
+ "\\b)";
var r = new RegExp(word,"igm")
str.replace(/(>[^<]+)/igm,function(a){
return a.replace(r,"<span class='hl'>$1</span>");
})
Не уверен, как объединить эти сценарии исделать подсветку нескольких тегов, но буду следить за этой темой.