Intereting Posts

проверить URL с регулярными выражениями

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

google.com http://google.com https://google.com http://www.google.com https://www.google.com 

но он не должен позволять, если это просто google

наконец, вещь является .extensions являются обязательными

Я пробовал это /^[a-z0-9-]+(.[a-z0-9-]*)(.[a-z0-9-]*)$/

может кто-нибудь мне помочь в этом случае ..

Попробуйте это выражение

 /[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[az]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi 

Он рассмотрит все случаи, о которых вы упомянули выше

Вы можете напрямую проверить URL-адрес, используя filter_var и FILTER_VALIDATE_URL

 if (filter_var($url, FILTER_VALIDATE_URL) !== false) 

редактировать

С Regex

 $subject = "http://www.google.com"; $pattern = "/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i"; preg_match($pattern, $subject, $matches); print_r($matches); 

Вывод

 Array ( [0] => http://www.google.com ) 

Codepad

 ((https?:|[^.])\/\/w{0,3}[.]?google.[az]{2,4})|google.[az]{2,4} 

Это не самый красивый, но он работает. Я проверил с http://regexpal.com/

Если вы хотите создать действительно хороший валидатор домена, вы должны получить базу данных домена tlds и сделать для них валидацию.

Mozilla имеет этот список: http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/effective_tld_names.dat?raw=1

Вот модуль python для этого https://github.com/nmmmnu/TLDExtractor

Вы можете попробовать следующее

 (^(http|https)://)?(www\.)?\w+\.com