【发布时间】:2019-01-23 10:19:36
【问题描述】:
我正在努力创建一个可以验证多封电子邮件的正则表达式模式。我知道这个话题已经被广泛讨论,但是,在研究了所有这些之后,我找不到我的具体问题的答案。我的问题如下。
我正在处理的项目是用 PHP 编写的,并使用 FILTER_VALIDATE_EMAIL。我的目标是编写一个前端电子邮件验证器,以某种方式用于单个和多个电子邮件,与 FILTER_VALIDATE_EMAIL 一致。在这里https://github.com/mpyw/FILTER_VALIDATE_EMAIL.js我找到了符合最新RFC标准规定的理想Regex模式,即:
^(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){255,})(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){65,}@)(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22))(?:\.(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-+[a-z0-9]+)*\.){1,126})+(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-+[a-z0-9]+)*)|(?:\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))]))$
现在我一直在尝试为多封电子邮件制作这种特殊的模式功能。我的问题来了,我该如何完成?我试图设置
[\s*,]*
为了让多个地址通过,到目前为止我只是头疼,所以非常欢迎您的帮助,在此先感谢!
【问题讨论】:
-
@Wiktor Stribiżew 这不是重复的。我的主题主要涉及正则表达式,特别是模式可能性的扩展。电子邮件验证排在第二位。
标签: javascript regex