gpt4 book ai didi

javascript - 与电子邮件正则表达式作斗争;你能帮我吗?

转载 作者:行者123 更新时间:2023-12-02 20:26:34 24 4
gpt4 key购买 nike

好的,所以我知道使用 RegEx 完全验证电子邮件地址是不可能的,我只是尝试通过电子邮件发送它并让用户单击验证链接。然而,这是 A-level 项目的一部分,我会因此获得额外的复杂性点,所以我想知道你是否可以帮助我。我正在尝试编写一封验证正则表达式的电子邮件,遵循以下规则:

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

本地部分:

未加引号的本地部分可以由 (a-z)、(A-Z)、数字 (0-9) 和以下字符组成: !#$%&'*+-/=? ^_{`|}~ 检查

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

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

域部分:

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

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

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

/^[A-z0-9!#$%&'*+\/=?^_{|}~-]([A-z0-9!#$%&'*+\/=?^_{|}~-]|(.(?!.))){0,62}[A-z0-9!#$%&'*+\/=?^_ `{|}~-]?@([A-z0-9-]{1,63}.){1,126}[A-z-]{2,63}$/

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

最佳答案

从技术上讲,RFC 2822投诉正则表达式为:

(?:[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])+)\])

您或许应该看看 http://www.regular-expressions.info/email.html不过。

关于javascript - 与电子邮件正则表达式作斗争;你能帮我吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4751262/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com