电子邮件验证问题[abnf] [RF 5322]

时间:2011-03-17 05:09:06

标签: validation email bnf

以下句子1*( atext / "." ) "@" ldh-str 1*( "." ldh-str )

中的含义如下

有人可以用简单的方式将其分解吗?

与以下[ABNF]制作相匹配的任何字符串:

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

其中atext如[RFC 5322]中所定义,而ldh-str如[RFC 1034]中所定义。

2 个答案:

答案 0 :(得分:2)

1*( atext / "." ) "@" ldh-str 1*( "." ldh-str )是格式良好的电子邮件地址的定义。

1*几乎告诉你(atext / ".")必须在@符号之前重复一次或多次。 atext可以是任何字母数字字符(必须以非数字开头),并且您可以包含用于分隔字符的点。

请考虑这一点:@example.com不是有效的电子邮件地址。 a@example.com是。

ldh-str基本上是表示二级域字符串的字符串,而1*("." ldh-str )是顶级域名。

a@.com也不是有效地址。

查看以下页面了解更多详情:

答案 1 :(得分:1)

ABNF是Augmented Backus-Naur Form,它是一种描述语法的语法。看起来在Wikipedia上有一个非常好的参考。

有关atextldh-str的定义,请查看相关的RFC(征求意见请求 - 基本上是互联网标准):

  • RFC 5322(关于标准的互联网邮件格式,又名“电子邮件”)
  • RFC 1034(关于域名)

(请注意,如果您点击方括号中的位,那么您复制并粘贴定义的地方实际上会链接到这些内容的引用...)

如果您在阅读完这些来源后有任何疑问,请告诉我们......