Я использую follwoing регулярное выражение
(".+@.+\\.[a-z]+")
Бит это принимает #@#.com как действующий адрес электронной почты. Каков шаблон, который я должен использовать?
Вам следует использовать валидатор электронной почты apache-commons. Вы можете получить файл jar из здесь .
Вот простой пример его использования:
import org.apache.commons.validator.routines.EmailValidator;
boolean isValidEmail = EmailValidator.getInstance().isValid(emailAddress);
Если кто-то хочет ввести несуществующий адрес электронной почты, он сделает это в любом выбранном вами формате.
Единственный способ проверить, принадлежит ли пользователю адрес электронной почты, который он ввел, - это отправить ссылку подтверждения (или активации) на этот адрес и попросить пользователя щелкнуть ее.
Так что не пытайтесь усложнить жизнь своим пользователям. Проверка наличия @
достаточно хороша.
Вот веб-страница, которая объясняет это лучше, чем я: http://www.regular-expressions.info/email.html ( EDIT : похоже, немного устарел, поскольку он ссылается на RFC 2822, который был заменен RFC 5322)
И еще один интересный подход к проблеме проверки: http://www.markussipila.info/pub/emailvalidator .php
Обычно лучшая стратегия для проверки адреса электронной почты - это просто попытаться отправить на него почту.