我想用" @"开头的任何单词的样式。字符为'粗体'字体;例如替换字符串:
' @xyzharris有一只猫@ zynPeter'
使用:
' @xyzHarris 有一只猫 @zynPeter '
答案 0 :(得分:2)
$("p:contains(@)").html(function(i, h){
return h.replace(/(@\w+)/g, '<b>$1</b>');
});
b{color:red;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>@xyzharris has a cat @zynPeter</p>
<p>This is @roko answer to @user21.</p>
<p>@cats like @dogs. A lot.</p>
确保p
选择器中包含纯字符串。否则,
$('p, p *').contents().filter(function() {
return this.nodeType === 3;
}).text(function(i, t) {
$(this).replaceWith(t.replace(/(@\w+)/g, '<b>$1</b>'));
});
b{color:red;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p><a href="#">@xyzharris has a</a> cat @zynPeter</p>
<p>This is <span>@roko answer</span> to @user21.</p>
<p>@cats <i>like @dogs</i>. <span>A lot</span>.</p>
在上面的正则表达式中,您看到我使用\w
代表
\w
匹配任何字母,数字或下划线。
对于 @ us3rn4_me 而言似乎相当酷。相反,如果你想确保匹配任何字符,只有空格而不是使用:
\S
匹配空格,制表符或换行符以外的任何内容。
+
量词确保重复之前的\w
表达式
+
一次到无限次,尽可能多次,根据需要回馈[贪心]