我列出了将近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

07-24 09:46
查看更多