2016-06-07 165 views
-1

開頭任何字我想將任何以「@」字符開頭的單詞設置爲「粗體」字體;例如替換字符串:使粗體字以@

'@xyzharris具有貓@zynPeter'

與:

'@xyzHarris具有貓@zynPeter'

+0

哪種語言是你在用嗎? – RamenChef

+0

javascript和jQuery – user21

回答

2
  1. 如果你的目標元素不包含任何的子元素簡單變種):

$("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表達

    +一個無限次,多次地,用之於[貪婪]