Nikolay Blokhin Facebook Nikolay Blokhin Instagram Nikolay Blokhin Linkedin Nikolay Blokhin Twitter

Hi, I'm Nikolay Blokhin I build the cool things with Python and Swift

Проверка url на валидность

Для одного проекта (Сервис коротких url) мне потребовалось проверить правильный ли вводится url, вернее является ли введенное урлом.

Посмотрев на все, что предлагается по этому поводу в сети, я решил сделать все сам, так как ничего из найденного меня не устраивало.

Единственным обязательным признаком, который я смог выделить, описывается таким правилом: url это обязательно две группы символов, разделенных точкой. Все, больше ничего обязательного нет.

Конечно, можно составить список всех доменных зон, и проверять есть ли во второй группе символов (после точки) одна из них, но это уже лишнее.

Возможно, вы подумали, что есть еще один обязательный признак: наличие идентификатора протокола (например «http://» или «ftp://»). Но это не совсем так, хотя с формальной точки зрения так. :)

Большинство людей привыкли, что google.com или supersait.ru это вполне нормальный url, и если им сказать что он неправильный будут, мягко говоря, в недоумении. И заставлять их вводить непонятные префиксы считаю совсем неправильным.

Логичнее сделать проверку на наличие префикса, и при его отсутствии подставить самый распространенный («http://»).