Это довольно старая тема, и вопрос требует валидатора URL на основе регулярных выражений. Я наткнулся на нить, ища точно то же самое. Хотя вполне возможно, можно написать действительно всеобъемлющее регулярное выражение для проверки URL-адресов. В конце концов я остановился на другом способе работы - с помощью функции PHP parse_url .
Возвращает логическое значение false, если URL не может быть проанализирован. В противном случае он возвращает схему, хост и другую информацию. Этого вполне может быть недостаточно для самостоятельной комплексной проверки URL, но его можно углубленно изучить для дальнейшего анализа. Если целью является просто поймать опечатки, недопустимые схемы и т. Д. Это вполне адекватно!