вопрос проверки электронной почты [abnf] [RF 5322] - PullRequest
0 голосов
/ 17 марта 2011

Что означает следующее в предложении ниже 1*( atext / "." ) "@" ldh-str 1*( "." ldh-str )

Может ли кто-нибудь разобрать его простыми словами?

Любая строка, которая соответствует следующей продукции [ABNF]:

1*( atext / "." ) "@" ldh-str 1*( "." ldh-str )

Где atext такой, как определено в [RFC 5322], а ldh-str такой, как определено в [RFC 1034].

Ответы [ 2 ]

2 голосов
/ 17 марта 2011

1*( atext / "." ) "@" ldh-str 1*( "." ldh-str ) - это определение хорошо отформатированного адреса электронной почты.

1* в значительной степени говорит вам, что (atext / ".") необходимо повторить один или несколько раз перед символом @.atext может быть любым буквенно-цифровым символом (должен начинаться с нецифровой цифры), и вам разрешено включать точки для разделения символов.

Учтите это: @example.com не является действительным адресом электронной почты.a@example.com is.

ldh-str - это строка, представляющая строку домена второго уровня, тогда как 1*("." ldh-str ) - домен верхнего уровня.

a@.com также не является допустимым адресом.

Проверьте следующие страницы для получения более подробной информации:

1 голос
/ 17 марта 2011

ABNF - расширенная форма Бэкуса-Наура, которая является синтаксисом для описания грамматики. Похоже, в Wikipedia .

есть довольно хорошая ссылка.

Для определения atext и ldh-str, проверьте соответствующие RFC (Запросы на комментарии - в основном интернет-стандарты):

  • RFC 5322 (что касается стандартного формата интернет-сообщений, он же «электронная почта»)
  • RFC 1034 (что касается доменных имен)

(Обратите внимание, что место, из которого вы скопировали и вставили определение, на самом деле содержит ссылки на ссылки для этих вещей, если вы нажали на биты в квадратных скобках ...)

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

...