Как заменить слова гиперссылкой в ​​определенном индексе, используя выражение Jquery? - PullRequest
0 голосов
/ 27 января 2011

Я заменяю тег "#" ссылкой, используя функцию ниже,

$('.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?"

Она повторяется следующим образом:

"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?

-Благодарю Абхишек

1 Ответ

3 голосов
/ 27 января 2011

Вам нужно либо использовать 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>");
 });

Или исключить # из совпадения и сделать %23 жестко закодированным:

 $(this).html($(this).html().replace(/#(\w+)/g, "<a target='_self' class='msg_links' href='http://test.com/search/q=%23$1'>$1</a>"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...