Обнаружение URL и ссылки в произвольном тексте - PullRequest
0 голосов
/ 09 марта 2011

Итак Регулярное выражение Грубера отлично подходит для поиска URL-адресов внутри текста. Что мне не хватает, так это какой-то способ превратить обычные ссылки типа bit.ly/foo в вещи, которые могут входить в свойство <a href="...">.

Есть указатели?

Ответы [ 3 ]

1 голос
/ 14 марта 2011

Попробуйте это: ([a-z0-9_-]+\.)+[a-z]{2,4}/[^ ]* Состоит из:

  • Как минимум один раз имя хоста или домена (содержащее буквенно-цифровые символы подчеркивания и тире)
  • затем TLD, который имеет длину не менее 2 и не более 4 символов и содержит только буквы
  • затем косая черта
  • с последующим нулем или любым количеством непробельных символов

Это не очень ограничительно, но, вероятно, делает работу для досок объявлений и тому подобного.

0 голосов
/ 01 января 2015

Это работает для меня:

/((?<=[^a-zA-Z0-9])(?:https?\:\/\/|[a-zA-Z0-9]{1,}\.{1}|\b)(?:\w{1,}\.{1}){1,5}(?:com|org|edu|gov|uk|net|ca|de|jp|fr|au|us|ru|ch|it|nl|se|no|es|mil|iq|io|ac|ly|sm){1}(?:\/[a-zA-Z0-9]{1,})*)/mg

https://regex101.com/r/fO6mX3/2

0 голосов
/ 20 марта 2011

Иногда самый простой ответ правильный:

function canonicalise(url) {
  if (!url.match(/^[a-z][\w-]+:/i)) {
    url = 'http://' + url
  }
  return url
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...