2015-06-07 86 views
-1

我正在解釋我的問題。 我試圖做一個JavaScript函數來突出顯示單詞(改變它們的顏色)在HTML文本中。我有另一個功能來突出顯示它們。javascript正則表達式來捕獲HTML文本中的單詞

我有一個關鍵字列表,我必須強調。

這裏是我所著的代碼到目前爲止

function highlight_words(keywords) { 

unHighlight_words(keywords); 
$('.rubricContent').each(function(index, element) { 
    //get elements for each rubrics 
    var content = $(element).html(); 
    if (keywords) { 
     $(keywords).each(function(i, e) { 
      var term = e 
      var re = new RegExp('(?:[^.;\w]|^|^\\W+){0}('+ term + ')(?:[^.\w]|\\W(?=\\W+|$)|$){0}', "gmi"); 
      var subst = '<span style="color:red">' + term + '</span> '; 
      content = content.replace(re, subst); 

     }); 
     $(element).html(content); 
    } 
}); 

結果並不壞我的話是紅色的,但不是當他們後跟一個「」或一個「,」

任何人都有我的解決方案? 謝謝!

回答

0

您可以按如下所示使用\ b字邊界。

term='Test'; 
content='TestTest. Test Test: Test. Test, TESTtest' 
var re = new RegExp('(\\b'+term+'\\b)', "gmi"); 
var subst = '<span style="color:red">' + term + '</span> '; 

content = content.replace(re, subst); 

alert(content) 

https://jsfiddle.net/3royvd66/1/