我正在使用下面的jQuery片段来围绕指定的文本块包装一个跨度:
$("h2:contains('cow')").html(function(_, html) {
return html.replace(/(cow)/g, '<span class="smallcaps">$1</span>')
});在这种情况下,“牛”这个词就是目标。然而,我只想突出“牛”这个词,而不是包含“牛”的词,例如“牛”或“牛体”。
我该怎么做?
小提琴在这里
发布于 2015-05-20 11:11:41
只要把它改成
$("h2:contains('cow')").html(function(_, html) {
return html.replace(/\b(cow)\b/g, '<span class="smallcaps">$1</span>')
});正则表达式中的\b是一个单词边界。见MDN。
发布于 2015-05-20 11:12:19
简单地说:\b,因为它允许您使用正则表达式执行"whole word only“搜索
$("h2:contains('cow')").html(function(_, html) {
return html.replace(/\b(cow)\b/g, '<span class="smallcaps">$1</span>')
});span { color: red}<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<h2>We have cows on cowboy town cow</h2>
https://stackoverflow.com/questions/30347949
复制相似问题