Jquery正则表达式 - 查找和格式化类似的文本部分

时间:2011-11-07 21:17:51

标签: jquery regex string words

我试图在反馈选项文本中找到类似的字符串,使用正则表达式使它们变粗。示例反馈选项列表。

  • 您的风险低。
  • 您的风险低至中等。
  • 您的风险中等。
  • 您的风险中等至高。
  • 您的风险很高。

以下代码适用于Jquery,但它只找到第一个匹配的单词,因此找到“低”,“中等”和“高”,但是它与单词组“低到中”或“中等”不匹配高”。如何在不退出第一个找到的单个单词的正则表达式的情况下确保它能查找每个选项?

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

提前感谢,Attila

1 个答案:

答案 0 :(得分: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/