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

Почему, если я выполняю регулярное выражение по принципу «ИЛИ», то у меня оно срабатывает, хотя по отдельности не должно срабатывать?

Есть 2 регулярных выражения
^\+?3?8?(0\d{9})- на проверку телефона и 9 символов.
\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}\b)
на проверку email

Если же я объединяю их и ввожу телефон длиннее чем 9 символов(либо опционально +38 и 9 символов), то регулярное выражение проходит, но по моей логике- не должно проходить.

Вот объединённое выражение

/(^\+?3?8?(0\d{9}))|(\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}\b)$/
  • Вопрос задан
  • 91 просмотр
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 1
fruworg
@fruworg
/(^\+?3?8?(0\d{9}))$|(\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}\b)$/
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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