在段落中查找单词,并将其包装在一个范围内

时间:2015-05-20 11:10:27

标签: jquery

我正在使用以下jQuery代码段来围绕指定的文本片段包装:

$("h2:contains('cow')").html(function(_, html) {
   return  html.replace(/(cow)/g, '<span class="smallcaps">$1</span>')
});

在这种情况下,“牛”这个词就是目标。但是,我只想要突出显示'cow'这个词,而不是包含'cow'的词,比如'cow'或'cowbodys'。

我该怎么做?

fiddle here

2 个答案:

答案 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>