2011-11-07 25 views
2

我正在嘗試使用正則表達式在反饋選項文本中找到類似的字符串,以使它們變爲粗體。示例反饋選項列表。jquery正則表達式 - 查找和格式化類似的文本部分

  • 您的風險是低。
  • 您的風險是低到中等。
  • 您的風險是中等。
  • 您的風險是從中等偏高到偏高。
  • 您的風險高於

下面的代碼工作jQuery的,但它只是發現的第一個匹配的詞這麼「低」,「中等」和「高」被發現,但隨後不匹配字組「低度到中度」或「中等至高」。我怎樣才能確保它會查找每個選項,而不會退出第一個找到的單個單詞的正則表達式?

var feedBackRiskTxt = currentFeedbackNode.find('Risk[result='+choice+']').text().replace(/(\blow|low to moderate|moderate|moderate to high|high\b.)/, "<span>$1</span>"); 

謝謝你在前進,阿提拉

回答

2

它看起來對我來說,你需要在你的正則表達式中的「G」選項,以便它將替換所有匹配找到。

此外,如果您希望每個匹配的兩端都有一個字邊界,並且尾部週期的匹配無法正常工作,則不會正確使用\ b字符。您可以用它來解決這些問題:

var feedBackRiskTxt = currentFeedbackNode.find('Risk[result='+choice+']').text().replace(/\b(low|low to moderate|moderate|moderate to high|high)\./g, "<span class='bold'>$1.</span>"); 

你可以看到它在這裏工作:http://jsfiddle.net/jfriend00/Y8Csf/

+0

感謝您的快速回復。 – reinhat