2013-02-19 2 views
1

Какое правильное регулярное выражение для URL-адреса без подстраницы?Регулярное выражение, чтобы получить URL-адрес без подстраницы

Ложные: http://abc.com/subpage
True: http://abc.com

+1

FYI, то, что вы называете «подстраницей», является * путем * URL-адреса. –

+0

Извините за мой плохой английский – linepisode

+0

Это скорее о терминологии, чем о языке, не волнуйтесь :) –

ответ

2

Следующие должны поймать все, что похоже на действительный URL. Я говорю «должен», потому что он не проверяет, действительно ли ДВУ реально.

^(https?:\/\/)([\da-z\.-]+)\.([a-z\.]{2,6})\/?$ 

Если вы хотите проверить только определенные TLD, вы можете использовать следующее регулярное выражение. Просто добавьте больше TLD, разделив их на трубу | знак.

^(https?:\/\/)([\da-z\.-]+)\.(net|org|nl|com|co\.uk)\/?$ 
+0

Спасибо. Отлично работает – linepisode

3

Проверьте это:

^https?://([^/]+?\.[a-zA-Z]{2,4})/?$ 

Это будет соответствовать:

  • http:// или https://
  • Любой характер, кроме / (1 или более раз)
  • Окончание: .X, где X - 2, 3 или 4 буквы.

Я попытался сделать это простым. Если вы search on Google, вы получите множество результатов, которые предоставят вам более конкретное регулярное выражение для соответствия URL-адресам.

+0

это правильно, но что-то здесь отсутствует. Он принимает «http: // abc». Как насчет расширения домена? – linepisode

+0

Несомненно. Позвольте мне отредактировать мой ответ. –

0
^([a-z]{3,5}:\/{2})((?:[\w-]+\.)?[\w-]+\.[a-z]{2,4})$ 

match 'http://abc.com' -> ['http://abc.com'], ['http://'], ['abc.com'] 
match 'http://www.abc.com' -> ['http://www.abc.com'], ['http://'], ['www.abc.com'] 
match 'http://abc.com/test' -> null 

Вы также можете использовать {2,6} вместо {2,4} в конце концов, если вы должны принять ДВУ как .museum во внимание.