У меня есть очень простой HTML, который генерируется из базы данных jSon строк, как это:
"<div style=\"padding-top:59px;\"><a href=\"http://www.macm.org/en/index.html\"><img src=\"http://www.artimap.com/montreal/www.macm.org.jpg\"><br>www.macm.org/en/index.html</a><h1>Musée d'art contemporain de Montréal</h1><p></p><p>A major Canadian institution dedicated exclusively to contemporary art, the Musée offers a varied program ranging from presentations of its Permanent Collection to exhibitions of works by Québec, Canadian and international artists. The Permanent Collection comprises some 7,000 works, including the largest collection of art by Paul-Émile Borduas.</p><div><p>185, Sainte-Catherine West (corner Jeanne-Mance)</p><p>H2X 3X5</p></div><b>514 847-6226</b></div>"
И переменная RESULTS, которая представляет собой конкатенацию таких строк, еще одна переменная: searchterm, которая является поисковым термином. Я хочу заключить каждый случай поиска в результатах с помощью HTMl searchterm Я использую эти регулярные выражения и функции для каждого тега, в котором я заинтересован, например:
var REG=new RegExp(searchterm,'gmi');
var regFUN=function(x){return x.replace(REG,"<i>$&</i>");};
var reg = new RegExp('<p>(.*?)</p>','gmi');
RESULTSshow=RESULTSshow.replace(reg,regFUN);
(I do this for every tags I am interested in highlighting)
This does <i>"searchterm"</i> but also gives <<i>p</i>> if searchterm==="p" wich really bugs me for the two last days.
Проблема в том, что если searchterm равен "p", это не только изменит текст внутри тегов, но также изменит сам тег.
Как я могу остановить его от изменения тегов? Я действительно хочу сделать это с помощью regExp, а не перебирать html (dom) ради скорости.