2011-01-27 7 views
0

私は機能の下に使用してリンクを "#" タグを置き換える、Jquery式を使用して特定のインデックスのハイパーリンクと単語を置き換える方法は?

$('.content').each(function(index) { 
    $(this).html($(this).html().replace(/(#\w+)/g, "<a target='_self' class='msg_links' href='http://test.com/search/q=$1'>$1</a>")); 
}); 

と仮定文字列は、このようなものです:

"Hello how are you #frineds, whats going on?" 

それはこのようにretruns:

"Hello how are you <a href='http://test.com/search/q=#frineds'>#frineds</a>, whats going on?" 

このようにしたいのではなく、

"Hello how are you <a href='http://test.com/search/q=%23frineds'>#frineds</a>, whats going on? " 

Jqueryを使用してこれを行う方法はありますか?

-Thanks アビシェーク

答えて

3

次のいずれかのマッチした文字列にencodeURIComponentを使用する必要があります。

$(this).html($(this).html().replace(/(#\w+)/g, function($0, $1) { 
    return "<a target='_self' class='msg_links' href='http://test.com/search/q=" + encodeURIComponent($1) + "'>" + $1 + "</a>"); 
}); 

またはmatchから#を除外し、%23がハードコーディングされます

$(this).html($(this).html().replace(/#(\w+)/g, "<a target='_self' class='msg_links' href='http://test.com/search/q=%23$1'>$1</a>")); 
+0

ありがとう@ Gumboそれは良い作品... –

+0

あなたの質問に喝采を立てて:)ありがとう –