Cheizer
@Cheizer

Как на jquery в тексте найти ники соцсетей @name и обернуть их ссылкой?

Как в тексте на странице, найти все ники и обернуть их ссылкой? Они могут быть разные, такого типа: @nikname.

Например, есть текст:

<div class="text">Lorem Ipsum - это текст-"рыба", часто используемый в печати и вэб-дизайне @username_1 . Lorem Ipsum является стандартной "рыбой" для текстов на латинице с начала XVI века @username_2. В то время некий безымянный печатник создал большую коллекцию размеров и форм шрифтов, @username_3 используя Lorem Ipsum для распечатки образцов. </div>


А в результате получить такой вариант, ники обернуты ссылками с соответствующими адресами:

<div class="text">Lorem Ipsum - это текст-"рыба", часто используемый в печати и вэб-дизайне <a href="https://site.ru/username_1">@username_1</a> . Lorem Ipsum является стандартной "рыбой" для текстов на латинице с начала XVI века <a href="https://site.ru/username_2">@username_2</a>. В то время некий безымянный печатник создал большую коллекцию размеров и форм шрифтов, <a href="https://site.ru/username_3">@username_3</a> используя Lorem Ipsum для распечатки образцов. </div>
  • Вопрос задан
  • 117 просмотров
Решения вопроса 2
megakor
@megakor
Go/PHP developer | ВКонтакте
Через регулярные выражения.
Дам подсказку: /^@\w+/
Ответ написан
Комментировать
0xD34F
@0xD34F Куратор тега JavaScript
const selector = '.text';
const regex = /@(\w+)/g;
const replacement = '<a href="https://site.com/$1">$&</a>';
const replace = str => str.replace(regex, replacement);

$(selector).html((i, html) => replace(html));

// или

document.querySelectorAll(selector).forEach(n => {
  n.innerHTML = replace(n.innerText);
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы