Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 与电子邮件正则表达式抗争;你能帮忙吗?_Javascript_Regex_Email - Fatal编程技术网

Javascript 与电子邮件正则表达式抗争;你能帮忙吗?

Javascript 与电子邮件正则表达式抗争;你能帮忙吗?,javascript,regex,email,Javascript,Regex,Email,好的,所以我知道用RegEx完全验证电子邮件地址是不可能的,我会尝试发送电子邮件,让用户点击验证链接。然而,这是一个a级项目的一部分,我做它会得到额外的复杂性点,所以我想知道你是否能帮我。我正在尝试编写一个电子邮件验证正则表达式,它遵循以下规则: 电子邮件地址必须由本地部分和域部分组成,由@符号(x40)分隔,组合长度不超过256个字符 本地部分: 未引用的局部部分可能由(A-z)、(A-z)、数字(0-9)和以下字符组成:!#$%&'*+-/=^{{`}~检查 点也可能出现在局部,但不能是第一

好的,所以我知道用RegEx完全验证电子邮件地址是不可能的,我会尝试发送电子邮件,让用户点击验证链接。然而,这是一个a级项目的一部分,我做它会得到额外的复杂性点,所以我想知道你是否能帮我。我正在尝试编写一个电子邮件验证正则表达式,它遵循以下规则:

电子邮件地址必须由本地部分和域部分组成,由@符号(x40)分隔,组合长度不超过256个字符

本地部分:

未引用的局部部分可能由(A-z)、(A-z)、数字(0-9)和以下字符组成:!#$%&'*+-/=^<代码>{{`}~检查

点也可能出现在局部,但不能是第一个或最后一个字符,也不能与另一个点相邻(.)几乎检查,点仍然可以是最后一个

本地部分的最大长度为64个字符。可能忽略-不检查

域部分:

域部分由每个1到63个字符的点分隔标签组成,最大总长度为255个字符(包括点分隔符)。检查

域标签必须以字母(a-z)(a-z)或数字(0-9)字符开头和结尾,并且可能包括连字符(-)。此外,TLD(最后一个标签)必须至少包含一个字母或连字符(并非全部为数字),并且至少包含两个字符。-检查

在caps中,我在实现目标方面走了多远。我遇到的主要问题是确保一个点不能是域的本地部分的最后一个字符。这是我到目前为止的正则表达式:

/^[A-z0-9!$%&'*+\/=?([A-z0-9!$%&'*+\/=?)([A-z0-9!\$%&'*+\/=?^-.((?!)){0,62}[A-z0-9!$%&'*+/=?^-.[A-z0-9-]{1-].[A-z0 1-]63}$/

编辑:灰色部分的开头和结尾应该有反勾号。

从技术上讲,投诉正则表达式应该是:

(?:[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])+)\])
不过你应该看看


完成:)

什么是“a级项目”以及什么是“复杂性点”?这是学校的项目吗?如果是这样的话,你不应该自己解决吗?大学项目,是的,我应该,但它让我很烦。哦,假设你来自美国,那么A-Levels在英国等同于AP。天哪,你把它搞复杂了,会得到额外的分数吗???难怪英国经济正在南下。大概他会因为匹配更复杂的规范而获得更多分数。实际上,上面的正则表达式和链接页面上的简化示例都允许连续点。(例如,hel.)。。lo@email.com),将在事实上无效时匹配。我还是被卡住了。也许连续的点是协议的一部分。
/^[a-z0-9!#$%&'*+\/=?^_`{|}~-](\.?[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@([a-z0-9]([A-z0-9-]{0,61}[A-z0-9])?\.)+([A-z][A-z0-9]+|[A-z0-9]+[A-z]|([A-z0-9]+[A-z-]+[A-z0-9]?)+[A-z0-9]+)$/