2010-11-28 2 views
-1

Можно создать дубликат:
PHP validation/regex for URLRegex для проверки URL-адрес

Привет,

в моей форме У меня есть поле URL. Пользователь мой вход все виды веб-URL. Я использую следующее регулярное выражение для проверки URL:

/^(https?):\/\/(?:[A-Z0-9-]+.)+[A-Z]{2,6}([\/?].+)?$/i 

Но это регулярное выражение обрабатывает некоторые URL, как недействительный, например, следующие

http://partners.webmasterplan.com/click.asp?ref=537448&site=5643&type=b479&bnb=479

Любые идеи, как улучшить регулярное выражение?

+2

Посмотрите на http://stackoverflow.com/questions/206059/php-validation-regex-for-url – 2010-11-28 14:49:47

+0

-1 за ленивость. Первый ответ StackOverflow, предлагаемый при вводе «Regex для проверки правильности URL», как название вопроса отвечает на ваш вопрос. Не ставьте StackOverflow с дубликатами. – Gordon 2010-11-28 15:59:08

ответ

2

почему не использовать filter_var

filter_var('example.com', FILTER_VALIDATE_URL)) 

не использовать регулярные выражения, где нет необходимости

1

Эта проблема была много раз, прежде чем решить. См., Например, here.

1

Как для регулярных выражений, то первый период должен быть экранированы, как этот

/^(https?):\/\/(?:[A-Z0-9-]+\.)+[A-Z]{2,6}([\/?].+)?$/i 
Смежные вопросы