Регулярное выражение. Превращение ссылок в гиперссылки

Рейтинг: 0Ответов: 1Опубликовано: 03.01.2015

Надо превращать все вставленные ссылки в гиперссылки (как ВК).

Не могу найти подходящий regexp, после ссылки может быть сразу точка, скобка, ещё чего, что юзер придумает. То, что я находил, захватывало эти символы за компанию.

Ответы

▲ 1Принят

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

Тем не менее, как вариант:

/((?:(?:https?):\/\/|www\.|ftp\.)(?:\([-A-Z0-9+&@#\/%=~_|$?!:;,.]*\)|[-A-Z0-9+&@#\/%=~_|$?!:;,.])*(?:\([-A-Z0-9+&@#\/%=~_|$?!:;,.]*\)|[A-Z0-9+&@#\/%=~_|$]))/ig

DEMO: JSFiddle