Регулярка для домена

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Гость
проходил мимо

Регулярка для домена

Непрочитанное сообщение Гость » 2017-05-16 13:21:54

Привет всем.
Не могу составить регулярное выражение для проверки валидности домена (не URL).
На хабре валяется типа:

Код: Выделить всё

^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$
но он проверяет только ya.ru, но никак не www.ya.ru или yyy.www.ya.ru

Есть соображения?

Спасибо.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Регулярка для домена

Непрочитанное сообщение Alex Keda » 2017-05-16 23:08:14

цикл, разделить по точкам, что внутри точек - проверить регуляркой
Убей их всех! Бог потом рассортирует...

Гость
проходил мимо

Регулярка для домена

Непрочитанное сообщение Гость » 2017-05-17 6:16:02

Alex Keda писал(а):цикл, разделить по точкам, что внутри точек - проверить регуляркой
Извиняюсь, эта регулярка проверяет домены 2,3 и последующих уровней, но она не предназначена для idna доменов.
Есть идеи?

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Регулярка для домена

Непрочитанное сообщение zg » 2017-06-01 21:24:31

Что-то типа такой регулярки:

Код: Выделить всё

/^([a-zA-Z][\w-]*\.)+\w+$/
Пример использования

Код: Выделить всё

% echo "www.ru\nmy.domain.com\nfoo\nsome-other.bar\n10.0.0.1\n-fooo.ru\nso.many.domains.com" | php -R 'echo $argn," ",var_export((bool)preg_match("/^([a-zA-Z][\w-]*\.)+\w+$/", $argn), 1), "\n";'
www.ru true
my.domain.com true
foo false
some-other.bar true
10.0.0.1 false
-fooo.ru false
so.many.domains.com true

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Регулярка для домена

Непрочитанное сообщение Alex Keda » 2017-06-03 20:51:36

телепатирую следующий вопрос - а где тут регулярка? =))
Убей их всех! Бог потом рассортирует...

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Регулярка для домена

Непрочитанное сообщение zg » 2017-06-03 21:22:07

Да, согласен, было не совсем ясно :) поправил