Найти URL-адреса в тексте и обернуть в тег привязки - PullRequest
3 голосов
/ 25 января 2012

Я в основном пишу свой собственный анализатор Markdown.Я хочу определить URL-адрес в строке и обернуть его тегом привязки, если это действительный URL-адрес.Например:

string = 'here is a link: http://google.com'
# if string matches regex (which it does)
# should return:
'here is a link: <a href="http://google.com">http://google.com</a>'

# but this would remain unchanged:
string 'here is a link: google.com'

Как этого добиться?

Бонусные баллы, если вы можете указать мне код в существующем синтаксическом анализаторе Ruby, который я могу использовать в качестве примера.

Ответы [ 2 ]

10 голосов
/ 25 января 2012

В общем: используйте регулярное выражение, чтобы найти URL-адреса и оберните их в свой HTML:

urls = %r{(?:https?|ftp|mailto)://\S+}i
html = str.gsub urls, '<a href="\0">\0</a>'

Обратите внимание, что это конкретное решение превратит этот текст:

See more at http://www.google.com.

… в…

See more at <a href="http://www.google.com.">http://www.google.com.</a>

Так что вы можете немного поиграть с регулярным выражением, чтобы выяснить, где URL действительно должен заканчиваться.

0 голосов
/ 06 апреля 2013

Вы можете использовать этот плагин jquery http://www.jquery.gr/linker/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...