Проверка url на валидность
Для одного проекта (Сервис коротких url) мне потребовалось проверить правильный ли вводится url, вернее является ли введенное урлом.
Посмотрев на все, что предлагается по этому поводу в сети, я решил сделать все сам, так как ничего из найденного меня не устраивало.
Единственным обязательным признаком, который я смог выделить, описывается таким правилом: url это обязательно две группы символов, разделенных точкой. Все, больше ничего обязательного нет.
Конечно, можно составить список всех доменных зон, и проверять есть ли во второй группе символов (после точки) одна из них, но это уже лишнее.
Возможно, вы подумали, что есть еще один обязательный признак: наличие идентификатора протокола (например «http://» или «ftp://»). Но это не совсем так, хотя с формальной точки зрения так. :)
Большинство людей привыкли, что google.com или supersait.ru это вполне нормальный url, и если им сказать что он неправильный будут, мягко говоря, в недоумении. И заставлять их вводить непонятные префиксы считаю совсем неправильным.
Логичнее сделать проверку на наличие префикса, и при его отсутствии подставить самый распространенный («http://»).