2

我正在尝试使用正则表达式在反馈选项文本中找到类似的字符串以使其粗体。示例反馈选项列表。

  • 你的风险很低。
  • 您的风险从低到中。
  • 你的风险是中等的。
  • 您的风险是中等到高。
  • 你的风险很高。

以下代码在 Jquery 中有效,但它只找到第一个匹配的单词,因此找到了“low”、“moderate”和“high”,但它不匹配“low to medium”或“moderate to high”的词组。我如何确保它会在不退出第一个找到的单个单词的正则表达式的情况下查找每个选项?

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

提前谢谢你,阿提拉

4

1 回答 1

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/

于 2011-11-07T21:20:44.337 回答