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

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

Есть 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)$/
  • Вопрос задан
  • 83 просмотра
Подписаться 1 Простой 2 комментария
Решения вопроса 1
fruworg
@fruworg
/(^\+?3?8?(0\d{9}))$|(\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}\b)$/
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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