В большинстве случаев вам не нужно проверять, является ли строка действительным адресом.
Либо так, и веб-сайт будет доступен, либо его не будет, и пользователь просто вернется.
Вы должны избегать нелегальных персонажей, чтобы избежать XSS, если ваш пользователь не хочет давать действительный сайт, это должно быть его проблемой.
(в большинстве случаев).
PS: Если вы все еще хотите проверить URL, посмотрите ответ nikic.