Задать вопрос

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

~([] '\"[(),!<>-])(((?: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.
  • Вопрос задан
  • 133 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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";
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы