我使用以下函数来给出带有类名的某些单词:
$.fn.wrapInTag = function(opts, color) {
var tag = opts.tag || 'span'
, words = opts.words || []
, regex = RegExp(words.join('|'), 'gi') // case insensitive
, replacement = '<'+ tag + ' class="' + color +'">$&</'+ tag +'>';
return this.html(function() {
return $(this).html().replace(regex, replacement);
});
};
问题是它与此中的冗余相匹配。我怎样才能使它只匹配确切的单词(红色但不冗余)?我做了一些研究,发现我需要做这样的事情:
(\w+)
但我不知道在 gi
旁边添加它的位置我将运行添加的功能 一句话就是:
<p>Only one redundant word is red</p>
$('p').wrapInTag({
tag: 'span',
words: ['red']
}, 'blue');
由于
答案 0 :(得分:4)
我认为它与(\w+)
没有任何关系。如果我正确地阅读问题,你想匹配一个单词,而不是单词的子串。这可以使用单词边界\b
同样如此\b(is|red|blue)\b
将完全匹配is
或red
或blue
。