Вот решение, которое может работать на вас. Во-первых, укажите URL-адреса, начинающиеся с http://
, https://
или www.
, например:
<cfset textToFormat = ReReplaceNoCase( textToFormat,
'((https?://|www\.)[-A-Z0-9+&@#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$])',
'<a class="actionLink" href="\1">\1</a>',
"ALL" )
/>
Далее исправьте недействительные ссылки, созданные на первом шаге. (URL, начинающиеся с www.
, требуют префикса http://
):
<cfset textToFormat = ReReplaceNoCase( textToFormat,
'href="www\.',
'href="http://www.',
"ALL" )
/>
Обратите внимание, что это не проверено, поскольку у меня нет доступа к ColdFusion. Кроме того, их синтаксис регулярных выражений плохо документирован, поэтому в этом решении используются только очень элементарные выражения.
Предостережения: Ссылка на URL-адреса трудна для выполнения, и существует довольно много случаев, когда это решение не сработает. См .: Проблема с URL-адресами Джеффа Этвуда и Улучшенный либеральный, точный шаблон регулярных выражений для сопоставления URL-адресов Джона Грубера и URL Linkification от вас действительно для большего информация о преобразовании URL в ссылки.