До сих пор я создал регулярное выражение как
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})$"
который удовлетворяет условиям как
[email protected]###@###.###something@something или [email protected]Теперь я хочу условие как
@ должно быть только две точки, что
означает, что [email protected] должен быть действительным и
[email protected] должно быть недействительным.Как изменить это регулярное выражение для вышеуказанного условия?
Я согласен с тем, что вам не следует пытаться проверять адреса электронной почты, кроме как в качестве упражнения. Проверка адресов электронной почты несовершенна и просто не работает, потому что существует слишком много способов сделать недействительными адреса, которые соблюдают правила, и отклонить действительные адреса, которые их не соблюдают. И вторая проблема — это нарушение условий сделки: если вы отклоните действующий адрес, ваш потенциальный пользователь не изменит адрес электронной почты только для того, чтобы доставить вам удовольствие, и вы потеряете его/ее.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Если строка не должна состоять только из цифр, вы можете использовать отрицательный просмотр вперед (?![\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,}))$/