Что не так в данном регулярном выражении?

~([] '\"[(),!<>-])(((?:https?|ftp|telnet)://(?:[a-z0-9_-]{1,32}(?::[a-z0-9_-]{1,32})?@)?)?((?:[a-z0-9-]{1,128}\.)+(?:com|net|org|mil|edu|arpa|gov|biz|info|aero|name|[a-z]{2})|(?!0)((?!0[^.]|255)[0-9]{1,3}\.){3}(?!0|255)[0-9]{1,3})(?:/[a-z0-9._@%&?+=/-]*)?(?:#[^ ]*)?)(?=\.*[] [()<>!,-])~is

На php 5.3 данный паттерн работает прекрасно, а на php 7 не работает.
Помогите подкорректировать под php 7.
  • Вопрос задан
  • 131 просмотр
Решения вопроса 1
Stalker_RED
@Stalker_RED
Выбросьте этот древний ужас, список TLD уже давно расширили. Где здесь travel или mobi, или christmas, например?

Для проверки email есть готовая функция filter_var()
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo "E-mail адрес '$email' указан верно.\n";
} else {
    echo "E-mail адрес '$email' указан неверно.\n";
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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