Страница 1 из 1

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

Добавлено: 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

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

Спасибо.

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

Добавлено: 2017-05-16 23:08:14
Alex Keda
цикл, разделить по точкам, что внутри точек - проверить регуляркой

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

Добавлено: 2017-05-17 6:16:02
Гость
Alex Keda писал(а):цикл, разделить по точкам, что внутри точек - проверить регуляркой

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

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

Добавлено: 2017-06-01 21:24:31
zg
Что-то типа такой регулярки:

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

/^([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

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

Добавлено: 2017-06-03 20:51:36
Alex Keda
телепатирую следующий вопрос - а где тут регулярка? =))

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

Добавлено: 2017-06-03 21:22:07
zg
Да, согласен, было не совсем ясно :) поправил