Регулярное выражение для проверки абсолютного URL или относительного URL - PullRequest
2 голосов
/ 24 марта 2011

Мне нужно регулярное выражение для проверки абсолютного URL ИЛИ относительного URL.

  • http://www.example.com должно пройти
  • / example / some.pdf должно пройти
  • / example.com / some.pdf должен завершиться ошибкой
  • пример должен завершиться неудачей

Ответы [ 2 ]

3 голосов
/ 24 марта 2011
(http://|/)[^ :]+

Также следует отметить, что /example.com/some является допустимым URL-адресом, поскольку в папке может быть точка, и не все файлы имеют расширения.

В зависимости от системы может быть несколько типов.символов, добавляемых в отрицательные скобки.

Самый простой способ сделать это - запросить метаданные файла с сервера, чтобы проверить, существует ли он на самом деле, но при этом не использовать регулярное выражение.

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

Как правильно указывает Конрад Рудольф: ВСЕ примеры в ОП являются действительными URL-адресами! А знаете ли вы, что пустая строка также является допустимым URL? Это так! Если вы действительно хотите подтвердить URL-адрес или я должен сказать URI , первым документом, который нужно прочитать, будет: RFC-3986 - Универсальный идентификатор ресурса (URI): общий синтаксис . Я немного изучил этот вопрос и написал (пишу) статью на эту тему:

Проверка URI регулярного выражения

Обратите внимание, что это относится только к универсальному URI. Возможно, вы захотите изучить дополнительные требования, характерные для интересующих вас схем (например, HTTP), например, требует, чтобы имя хоста было vaild DNS-хостом.

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