输入无效的电子邮件地址或某些文字,按OK - Opera 22不会显示任何验证错误消息,表单也不提交......这是Opera错误还是我做错了什么?
<form>
<input type="email"/>
<button type="submit">OK</button>
</form>
答案 0 :(得分:0)
通过not valid
电子邮件定义您的意思,根据RFC 5321和RFC 5322,电子邮件验证有相当直观的正则表达式模式。
<强>语法强>
电子邮件地址的格式为local-part@domain
,其中local-part
最多可包含64个字符,domain
名称最多可包含253个字符 - 但最大值为256-正向或反向路径的字符长度限制整个电子邮件地址长度不超过254个字符。
正式定义在RFC 5322(第3.2.3和3.4.1节)和RFC 5321中 - 在信息RFC 3696 [3]和相关勘误表中给出了更易读的形式。
本地部分
电子邮件地址的local-part
可能会使用这些ASCII
个字符中的任何一个。 RFC 6531允许超出ASCII范围的Unicode字符:
空格和&#34;(),:;&lt;&gt; @ [](ASCII:32,34,40,41,44,58,59,60,62,64,91-93 )
特殊字符的限制是,只有在引号之间包含 时才能使用,其中包含2个(反斜杠\和引号&#34;(ASCII: 92,34))之前还必须加上反斜杠\(例如&#34; \\&#34;&#34;)。
允许在本地部分两端带括号的注释;例如john.smith(comment)@example.com
和(comment)john.smith@example.com
都等同于john.smith@example.com
。
RFC 6531允许使用U + 007F以上的国际字符,但邮件系统可能会限制在分配本地部分时使用哪些字符。
带引号的字符串可以作为局部部分中的点分隔实体存在,或者当最外面的引号是局部部分的最外面的字符时可以存在(例如abc."defghi".xyz@example.com
或"abcdefghixyz"@example.com
<强>允许。相反,abc"defghi"xyz@example.com
不是; abc\"def\"ghi@example.com
也不是。
但引用的字符串和字符并不常用。 RFC 5321还警告&#34; 希望接收邮件的主机应该避免定义Local-part需要(或使用)Quoted-string表单的邮箱&#34;。
local-part
postmaster受到特殊处理 - 它不区分大小写,应转发给域名电子邮件管理员。从技术上讲,所有其他local-parts
都区分大小写,因此jsmith@example.com
和JSmith@example.com
指定不同的邮箱;但是,许多组织将大写和小写字母视为等效字母。
大多数组织不允许使用许多技术上有效的特殊字符。组织可以根据需要自由地限制自己的电子邮件地址的形式,例如,Windows Live Hotmail只允许使用字母数字,点(。),下划线(_)和连字符( - )创建电子邮件地址。[5 ]
发送邮件的系统必须能够处理所有有效地址的外发邮件。与相关标准相反,一些有缺陷的系统将某些合法地址视为无效,并且无法处理到这些地址的邮件。例如,Hotmail拒绝向包含以下任何标准的任何地址发送邮件 - 允许的字符:!#$%*/?^
{|}〜`。
域名
电子邮件地址的域名部分必须符合严格的准则:它必须符合hostname
的要求,包括字母,数字,连字符和点。此外,域名部分可能是 IP地址文字,由方括号括起,例如jsmith@[192.168.2.1]
,但除了电子邮件垃圾邮件外,很少可见。
国际化域名(编码为符合主机名要求)允许表示非ASCII域名部分。
域部分和本地部分都允许注释。例如。 john.smith@(comment)example.com
和john.smith@example.com(comment)
相当于john.smith@example.com
。
<强>实施例强>
有效的电子邮件地址
niceandsimple@example.com
very.common@example.com
a.little.lengthy.but.fine@dept.example.com
disposable.style.email.with+symbol@example.com
other.email-with-dash@example.com
电子邮件地址无效
Abc.example.com
(@字符必须分隔本地和域名部分)
A@b@c@example.com
(只允许一个@在引号外)
a"b(c)d,e:f;g<h>i[j\k]l@example.com
(此本地部分中的任何特殊字符都不允许在引号外面)
just"not"right@example.com
(引用的字符串必须以点分隔,或构成本地部分的唯一元素)
this is"not\allowed@example.com
(空格,引号和反斜杠只有在带引号的字符串中且以反斜杠开头时才存在)
this\ still\"not\\allowed@example.com
(即使转义(以反斜杠开头),空格,引号和反斜杠仍必须包含在引号中)
有关详细信息,请参阅here。