Регулярное выражение для электронной почты с индивидуальными условиями

До сих пор я создал регулярное выражение как

Pattern = "^(?=.*[a-zA-Z].*)([a-zA-Z0-9._%+-]+@([a-zA-Z0-9-]+[a-zA-Z0-9-]+(\.([a-zA-Z0-9-]+[a-zA-Z0-9-])+)?){1,4})$"

который удовлетворяет условиям как

  1. Все не должно быть цифрами как [email protected]
  2. Идентификатор почты не должен состоять из специальных символов, таких как ###@###.###
  3. Он должен подтвердить something@something или [email protected]

Теперь я хочу условие как

  1. До и после @ должно быть только две точки, что означает, что [email protected] должен быть действительным и [email protected] должно быть недействительным.

Как изменить это регулярное выражение для вышеуказанного условия?

Я согласен с тем, что вам не следует пытаться проверять адреса электронной почты, кроме как в качестве упражнения. Проверка адресов электронной почты несовершенна и просто не работает, потому что существует слишком много способов сделать недействительными адреса, которые соблюдают правила, и отклонить действительные адреса, которые их не соблюдают. И вторая проблема — это нарушение условий сделки: если вы отклоните действующий адрес, ваш потенциальный пользователь не изменит адрес электронной почты только для того, чтобы доставить вам удовольствие, и вы потеряете его/ее.

Andrea Raimondi 26.12.2020 06:53
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
113
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Если строка не должна состоять только из цифр, вы можете использовать отрицательный просмотр вперед (?![\d@.]*$), чтобы утверждать, что до конца строки есть не только цифры, точки и знаки @.

Чтобы сопоставить 0, 1 или 2 точки, вы можете использовать квантификатор {0,2}.

Шаблон использует \w для сопоставления символов слова, но вы можете изменить его, используя класс символов, такой как [\w-%], чтобы указать разрешенные символы.

^(?![\d@.]*$)\w+(?:\.\w+){0,2}@\w+(?:\.\w+){0,2}$

Демонстрация регулярных выражений

Обратите внимание, что шаблон очень ограничен в принятии действительных адресов электронной почты. Вы также можете сделать шаблон очень широким и отправить пользователю ссылку для подтверждения, чтобы проверить его.

Это регулярное выражение, используемое для проверки электронной почты с максимальными ограничениями.

/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/

Другие вопросы по теме