Нужна помощь с регуляркой — валидация всевозможных адресов (URL)?

Здравствуйте!


У меня есть вот такая регулярка, которая со своей работой еще недавно справлялась на ура:
~^

# scheme
[-a-z0-9+.]++://

# username:password (optional)
(?:
        [-a-z0-9$_.+!*\'(),;?&=%]++   # username
    (?::[-a-z0-9$_.+!*\'(),;?&=%]++)? # password (optional)
    @
)?

(?:
    # ip address
    \d{1,3}+(?:\.\d{1,3}+){3}+

    | # or

    # hostname (captured)
    (
            (?!-)[-a-z0-9]{1,63}+(?<!-)
        (?:\.(?!-)[-a-z0-9]{1,63}+(?<!-)){0,126}+
    )
)

# port (optional)
(?::\d{1,5}+)?

# path (optional)
(?:/.*)?

$~iDx



Но, как многие уже, наверное, слышали, у нас появился потрясающий домен.РФ

Буду премного благодарен за аналогичную регулярку (которая валидирует не только http(s)://сайт(точка)домен — таких и в гугле навалом), которая также пропустит и правильно написанные русскобуквенные адреса.
  • Вопрос задан
  • 2640 просмотров
Решения вопроса 1
@Nc_Soft
переводите в punycode и валидируйте
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
taliban
@taliban
php программист
Не по теме конечно =) Но добавлю этот вопрос в избранное, и буду всех и каждого тыкать носом, как надо оформлять регулярки :)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы