2013-05-28 30 views
0

我正在爲自動提示工作,在那裏我需要匹配關鍵詞以及匹配的關鍵詞是否使其突出顯示。我完成了這個,但問題是匹配時,我正在尋找忽略大小寫。所以在結果如果我正在尋找首頁和結果是首頁它的成爲首頁同時顯示在fronend。我正在使用鬍子作爲Ui的模板引擎。 使用的代碼是:突出顯示匹配的文本,並區分大小寫的自動提示

var highLightRegExp = new RegExp(r.q , "ig"); 
//r.q - is query term. 
      // Highlight the query part of the search term 
      highlightText : function() { 
       return function (text, render) { 
       var renderTxt = render(text), 
        decodedText = $("<div/>").html(renderTxt).text(); 
       return decodedText.replace(highLightRegExp , "<b class='colorFFF'>" + r.q + "</b>"); 
       }; 
      } 

如何匹配所有的字符,但同時顯示它應該是在原來的情況。

+0

使用,基於殼體的力匹配正則表達式。 – AurA

回答

2

使用$&(這是匹配的子字符串)替換而不是原始字符串。

例如:

decodedText.replace(highLightRegExp , "<b class='colorFFF'>$&</b>"); 

而且不要忘了escape the string使用它作爲一個表達式之前,或者當用戶使用正則表達式元字符([home]*),你可以得到一些問題。

0

嘗試使用$&

$& 替代了全場比賽的一個副本。

示例代碼:

decodedText.replace(highLightRegExp , "<b class='colorFFF'>$&</b>"); 

,或者如果你使用()到分組的子表達式匹配使用$1

$number 代用品由組號相匹配的子串。

示例代碼:

decodedText.replace(highLightRegExp , "<b class='colorFFF'>$1</b>"); 
相關問題