2015-05-20 2 views
2

Я использую следующий JQuery фрагмент кода, чтобы обернуть промежуток вокруг указанной части текста:Найти слово в абзаце, и завернуть его в пролете

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

В данном случае слово «корова» является целью. Тем не менее, я хочу, чтобы слово «корова» было выделено, а не слова, содержащие «коровы», такие как «коровы» или «ковбоды».

Как это сделать?

fiddle here

ответ

2

Просто измените его

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

\b в регулярном выражении является границей слова. См. MDN.

+0

Отлично, спасибо! – user1444027

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>

Смежные вопросы