我想強調一組使用JavaScript和正則表達式的關鍵字,我面臨着一個問題,我的關鍵字可以包含文字和特殊字符作爲@Text #NUMBER等等。我使用單詞邊界來匹配和替換整個單詞而不是一個部分單詞(包含在另一個單詞中)。正則表達式表達在JavaScript
var pattern = new regex('\b '(+ keyword +')\b',gi);
這裏這個表達式匹配整個關鍵字,並強調他們,但在情況下,如果像「號:」任何關鍵字沒有得到強調。
我知道\bword\b
爲字邊界和特殊字符匹配是非字母數字字符因此不通過上述表達式匹配。 你能讓我知道我可以用什麼正則表達式來完成上述任務。
== 更新 ==
對於上面我試着添Pietzcker對下面的正則表達式的建議,
expr: (?:^|\\b|\\s)(" + keyword + ")(?:$|\\b|\\s)
上面似乎是工作讓我的對手整個字與字母數字和非字母數字字符,但是每當關鍵字有連續的HTML標籤之前或不帶空格的關鍵字後,它並沒有突出的關鍵字(如社會保障* 號: < BR> *) 我嘗試以下的正則表達式,但它取代了HTML標記關鍵字
expr: (?:^|\b|\s|<[^>]+>)number:(?:$|\b|\s|<[^>]+>)
這裏爲關鍵字號前面:具有<br>
(空間有意添加爲BR標籤以避免瀏覽器解釋標籤)在下一個沒有空格的地方會突出顯示關鍵字。
您能否提供這將忽略與字母數字和非字母數字字符整個單詞連續的HTML標記的表達。
如果您有搜索的關鍵字,爲什麼要使用正則表達式?只要搜索字符串。 – 2010-11-18 11:30:39
[正則表達式使用字邊界在JavaScript中匹配字母數字和非字母數字字符]的可能重複(http://stackoverflow.com/questions/4214204/regex-expression-using-word-boundary-for-matching-alphanumeric-and -non-alphanumer) – Pointy 2010-11-18 14:22:09
from [tchrist](http://stackoverflow.com/users/471272/tchrist)[鏈接回覆](http://stackoverflow.com/a/4215752/576767):「請看看[這個答案](http://stackoverflow.com/questions/4213800/is-there-something-like-a-counter-variable-in-regular-expression-replace/4214173#4214173)爲微妙的陷阱,隨之而來使用\ b和\ B作爲邊界。「 – 2015-05-13 21:52:47