Я хочу преобразовать строку URL-адреса в элемент HTML-ссылки (<a href="#"></a>
) (например, Facebook делает со своими URL-адресами в тексте, например)
Я попробовал это решение Преобразование ссылок из строки в интерактивные ссылки с использованием Ruby / Rails, но я просто получаю HTML-ссылку в виде простого текста ...
Пример :
У меня есть это
string = "blabla http//www.google.com blabla
lorem ipsum lorem ipsum"
И я бы сделал это не в виде обычного текста, а как элемент HTML
<p>blabla</p>
<a href="http//www.google.com">http//www.google.com</a>
<p>blabla</p>
<p>lorem ipsum lorem ipsum</p>
Спасибо за помощь :)
2 ответа
Простой текст может быть преобразован в HTML с помощью метода html_safe
для строки. Нравится '<a href="http//www.google.com">http//www.google.com</a>'.html_safe
Я бы разделил ввод на «слова», сравнил бы каждое слово с регулярным выражением для URL-адреса и, если он совпадает, заключил бы его в элемент ссылки.
В этом ответе я буду использовать простое регулярное выражение. Мы будем рассматривать все, что начинается с http://
или https://
, как URL. Вы можете использовать что-нибудь более продвинутое, если хотите.
string = "blabla https://www.google.com blabla lorem ipsum lorem ipsum"
string = string.split.map do |word|
if /https?:\/\/.*/.match word
next "<a href=\"#{word}\">#{word}</a>"
else
next word
end
end.join(' ')
puts string #=> blabla <a href="https://www.google.com">https://www.google.com</a> blabla lorem ipsum lorem ipsum
Обратите внимание, что на самом деле это не работает с исходной строкой в вашем ответе, потому что это недействительный URL-адрес (отсутствует двоеточие).
Новые вопросы
html
HTML (язык разметки гипертекста) - это язык разметки для создания веб-страниц и другой информации, отображаемой в веб-браузере. Вопросы, касающиеся HTML, должны включать минимальный воспроизводимый пример и некоторое представление о том, чего вы пытаетесь достичь. Этот тег редко используется отдельно и часто используется вместе с [CSS] и [javascript].