所有有效的电子邮件是否至少包含一个@符号
Do all valid emails contain at least one @ symbol?
我并不是想出完整的电子邮件验证。我正在尝试防止特定问题:
我让用户使用我网站上的联系表格,它要求"Name
","Email
"和"Message
",只是通过搞笑的错误,我得到了信息,"First Name
","Last Name
","Message
",我对自己说,'该死的,我把黄页放在哪里了?
我只是想提醒人们,我们要求的不是姓氏,而是电子邮件。
我想我检查了一个@
符号,我想确保我没有忽略有效的电子邮件。
是否有没有@
符号的有效电子邮件?
根据RFC5322:
addr-spec 是一个特定的互联网标识符,其中包含一个本地解释的字符串,后跟符号字符("@",ASCII 值 64),后跟一个互联网域。
所以,是的,所有电子邮件地址都必须具有@
字符。
在互联网接管世界之前,电子邮件地址可以具有其他格式,例如FidoNet邮件地址1:170/918.10
,FidoNet节点1:170/918
上的用户编号10。
但考虑到互联网用户与FidoNet用户的比例目前约为数十亿或更多,这只是出于历史兴趣。
如RFC5322 Section 3.4.1 中所定义:
地址规范是一个特定的互联网标识符,其中包含本地解释的字符串后跟符号字符("@",ASCII 值 64),后跟一个因特网域。
https://www.rfc-editor.org/rfc/rfc5322
所有有效的电子邮件地址都包含 @ 符号。您可以阅读互联网消息格式标准以获取更多信息:https://www.rfc-editor.org/rfc/rfc5322
特别是 3.4.1.地址规范规范:https://www.rfc-editor.org/rfc/rfc2822#section-3.4.1
是的,根据RFC5322,每个电子邮件地址都必须有一个签名,考虑到local-name@domain.com
的基本格式......
addr-spec 是一个特定的互联网标识符,其中包含一个本地解释的字符串,后跟符号字符("@",ASCII 值 64),后跟一个互联网域。
但请确保不要只验证一个签名,因为一个电子邮件地址可能有多个。 毕竟,还有其他 RFC!
RFC2822使我们能够在电子邮件地址中使用引号字符串...
3.2.2. 引用字符
某些字符保留用于特殊解释,例如分隔词法标记。 允许将这些字符用作未解释的数据,提供了引用机制。
引号对 = (" 文本)/obs-qp
因此"@"@gmail.com
是一个有效的电子邮件地址。
也不要忘记RFC5321! 这定义了另一个基本程序,即在您的电子邮件地址中拥有任意数量的@
标志......
请注意,反斜杠"''"是一个引号字符,用于指示下一个字符将按字面意思使用(而不是它的正常解释)。 例如,"Joe'',Smith"表示单个九个字符的用户名字符串,逗号为该字符串的第四个字符。
因此,'@@gmail.com
也是一个技术上有效的电子邮件地址。
今天,是的(见其他答案); 但历史性的答案是:不。
原始标准(RFC822 ff)使得拥有极短,有效和有效的电子邮件地址(如"i.me")成为可能。(DDJ曾经举办过一场比赛。@ 只是表示主机中的邮箱;因此,如果您拥有整个主机(例如,您自己的服务器或PC),则不需要@。
检查电子邮件地址的规则过去和现在都很复杂。为了在一定程度上简化它们,并匹配许多损坏的"检查器"的不良做法,最初无效的假设电子邮件地址将包含@最终被纳入官方标准。
- 包含转义符号的正则表达式
- 当元素ID包含美元符号时,Javascript中的getElementByid.当ID包含美元符号时,
- 如何拆分字符串但包含一些符号(#'s和+'s)
- 重定向到同一页面,但其中包含一条消息
- 重定向到同一页面,但其中包含一条消息
- 如何只包含一次javascript文件
- 响应字段包含一个子级时的节点 SOAP 强制数组
- 使用功能更改文本并包含项目符号图像
- 所有有效的电子邮件是否至少包含一个@符号
- 如何使用bower在javascript项目中包含一个私有的本地文件
- 使用moment js创建一个包含一周中的几天和一天中的几个小时的数组
- 如何检查对象是否包含一组属性
- 正确处理包含“特殊符号”的字符串
- 如何判断一个对象是否包含一个数组
- 如何在asp.net中使用Javascript从gridview中搜索仅包含一列
- 十进制数包含+、-符号的正则表达式
- jQuery -检查val是否为空并包含一段特定的文本
- 列表视图链接包含特殊符号
- 如何确保javascript在ASCX中使用时只包含一次
- 拆分数组仍然是一个包含一项的数组,而不是字符串