我列出了将近1000个奖项。每个奖项都在其自己的范围内,并遵循以下格式
x for y
例:
<span>Broadcast Film Critics Association Award for Best Director</span>
对于这些范围中的每一个,我都希望将“ for”之前的所有文本加粗。如何在“ for”一词(不仅包括字符)之前(并且不包括)搜索无限数量的单词并将其加粗?
我知道像这样的表达
\S+\s+\S+\s+for
我正在搜索字符f,o和r之前(包括2个单词)。但是我想匹配单词“ for”,而不仅仅是字符,而且我不想在粗体字中包含“ for”。
最佳答案
正则表达式似乎是这里的最佳解决方案,但是我建议使用匹配组的正则表达式,以便在添加<b>
标记时可以重建字符串。请尝试以下操作:
$('span').html(function(i, v) {
var matches = /(.+)(for.+)/gi.exec(v);
return '<b>' + matches[1] + '</b>' + matches[2];
});
Example fiddle