我正在使用以下jQuery代码段来围绕指定的文本片段包装:
$("h2:contains('cow')").html(function(_, html) {
return html.replace(/(cow)/g, '<span class="smallcaps">$1</span>')
});
在这种情况下,“牛”这个词就是目标。但是,我只想要突出显示'cow'这个词,而不是包含'cow'的词,比如'cow'或'cowbodys'。
我该怎么做?
答案 0 :(得分:2)
只需将其更改为
即可$("h2:contains('cow')").html(function(_, html) {
return html.replace(/\b(cow)\b/g, '<span class="smallcaps">$1</span>')
});
正则表达式中的 \b
是单词边界。请参阅MDN。
答案 1 :(得分:2)
简单地说:\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>