Вы могли также посмотреть на использование инструмента как , SQL Выдерживает сравнение для сценариев различия между различными версиями базы данных, позволяя Вам быстро мигрировать между версиями
+
- допустимый символ в адресе электронной почты. Не имеет значения, является ли домен gmail.com или googlemail.com
. Регулярные выражения на самом деле не очень хороший способ проверки электронной почты, но если вы просто хотите изменить свое регулярное выражение для обработки плюса, измените его. на следующее:
/^([a-zA-Z0-9_.-\+])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/
В качестве примера того, как это регулярное выражение не проверяется на соответствие спецификации: Электронная почта .. @ -. com
действителен в соответствии с ним.
Я бы предпочел что-нибудь вроде / . + @. + \ .. + / для проверки на простые ошибки. Затем я бы отправил электронное письмо на этот адрес, чтобы убедиться, что он действительно существует, поскольку большинство опечаток все равно приводят к синтаксически правильным адресам электронной почты.
Спецификации позволяют использовать некоторые действительно безумно уродливые адреса электронной почты. Меня часто очень раздражают веб-сайты, даже если они жалуются на совершенно нормальные действительные адреса электронной почты, поэтому, пожалуйста, постарайтесь не отклонять действительные адреса электронной почты. Лучше принять некоторые недопустимые адреса, чем отклонить законные.
Как и другие предлагали, я бы использовал простое регулярное выражение, например / . + @. + /, а затем отправив письмо с подтверждением. Если это достаточно важно для проверки, достаточно важно для проверки, потому что юридический адрес электронной почты все еще может принадлежать кому-то, кроме вашего посетителя. Или содержать непреднамеренную, но фатальную опечатку.
* Edit: удалена точка из доменной части регулярного выражения, поскольку a @ to
по-прежнему действующий адрес электронной почты. Так что даже моя сверхупростая проверка отклонила действительные адреса. Есть ли вообще недостаток в том, чтобы просто принимать все, что содержит @, с чем-то впереди и позади него?
Если вам необходимо проверить электронную почту с помощью регулярного выражения, то прочтите стандартную или хотя бы эту статью .
Стандарт предлагает использовать эту regexp:
(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
Если это вас не пугает, то должно:)
Очень хорошая статья на эту тему Я знал, как проверить адрес электронной почты, пока Я прочитал RFC