Лучшие практики для проверки адреса электронной почты (включая + в адресах Gmail)

Вы могли также посмотреть на использование инструмента как , SQL Выдерживает сравнение для сценариев различия между различными версиями базы данных, позволяя Вам быстро мигрировать между версиями

7
задан Mark Ursino 9 December 2009 в 14:20
поделиться

5 ответов

+ - допустимый символ в адресе электронной почты. Не имеет значения, является ли домен gmail.com или googlemail.com

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

/^([a-zA-Z0-9_.-\+])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/

В качестве примера того, как это регулярное выражение не проверяется на соответствие спецификации: Электронная почта .. @ -. com действителен в соответствии с ним.

11
ответ дан 6 December 2019 в 08:15
поделиться

Я бы предпочел что-нибудь вроде / . + @. + \ .. + / для проверки на простые ошибки. Затем я бы отправил электронное письмо на этот адрес, чтобы убедиться, что он действительно существует, поскольку большинство опечаток все равно приводят к синтаксически правильным адресам электронной почты.

3
ответ дан 6 December 2019 в 08:15
поделиться

Спецификации позволяют использовать некоторые действительно безумно уродливые адреса электронной почты. Меня часто очень раздражают веб-сайты, даже если они жалуются на совершенно нормальные действительные адреса электронной почты, поэтому, пожалуйста, постарайтесь не отклонять действительные адреса электронной почты. Лучше принять некоторые недопустимые адреса, чем отклонить законные.

Как и другие предлагали, я бы использовал простое регулярное выражение, например / . + @. + /, а затем отправив письмо с подтверждением. Если это достаточно важно для проверки, достаточно важно для проверки, потому что юридический адрес электронной почты все еще может принадлежать кому-то, кроме вашего посетителя. Или содержать непреднамеренную, но фатальную опечатку.

* Edit: удалена точка из доменной части регулярного выражения, поскольку a @ to по-прежнему действующий адрес электронной почты. Так что даже моя сверхупростая проверка отклонила действительные адреса. Есть ли вообще недостаток в том, чтобы просто принимать все, что содержит @, с чем-то впереди и позади него?

2
ответ дан 6 December 2019 в 08:15
поделиться

Если вам необходимо проверить электронную почту с помощью регулярного выражения, то прочтите стандартную или хотя бы эту статью .

Стандарт предлагает использовать эту 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])+)\])

Если это вас не пугает, то должно:)

5
ответ дан 6 December 2019 в 08:15
поделиться
1
ответ дан 6 December 2019 в 08:15
поделиться
Другие вопросы по тегам:

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