大胆任何以@开头的单词

时间:2016-06-07 17:51:35

标签: javascript css regex

我想用" @"开头的任何单词的样式。字符为'粗体'字体;例如替换字符串:

  

' @xyzharris有一只猫@ zynPeter'

使用:

  

' @xyzHarris 有一只猫 @zynPeter '

1 个答案:

答案 0 :(得分:2)

  1. 如果目标元素不包含任何子元素更简单的):
  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选择器中包含纯字符串。否则,

    1. 如果您的目标元素包含内部子元素
    2. $('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表达式

        

      +一次到无限次,尽可能多次,根据需要回馈[贪心]