如何在JavaScript中验证电子邮件地址?
我知道这个问题以前被问过很多次,但我还没有找到任何真正满足电子邮件地址必须满足的所有条件才能被视为有效的内容。
\n考虑以下作为电子邮件地址的结构:
\npart1@part2.part3.part4\nRun Code Online (Sandbox Code Playgroud)\n第 1 部分=用户名
\n第2部分=域
\n第3部分和第4部分=顶级域
\n这些是必须满足的所有条件:
\n这是我当前使用的正则表达式:
\n^([\\w\\.\\-]+)@([\\w\\-]+)((\\.(\\w){2,9})+)$\nRun Code Online (Sandbox Code Playgroud)\n但不满足条件:4、5、6、7和8
\n我只是想弄清楚如何补充我的正则表达式并在这个过程中学习。
\n这是无效电子邮件的列表
\nmkyong \xe2\x80\x93 必须包含 \xe2\x80\x9c@\xe2\x80\x9d 符号
\nmkyong123@.com \xe2\x80\x93 域不能以点 \xe2\x80\x9c.\xe2\x80\x9d 开头
\nmkyong()*@gmail.com \xe2\x80\x93 email\xe2\x80\x99s 只允许字符、数字、下划线和破折号
\nmkyong@%*.com …
我正在努力创建一个Regex模式来验证多封电子邮件。我知道这个话题已经被广泛讨论,但是,在对它们进行研究之后,我找不到我的具体问题的答案。我的问题如下。
我正在处理的项目是用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}))]))$
Run Code Online (Sandbox Code Playgroud)
现在,我一直在尝试为多封电子邮件使用这种特殊的模式功能。我的问题来了,我该怎么办?我试图设定
[\s*,]*
Run Code Online (Sandbox Code Playgroud)
为了使多个地址通过,到目前为止,我头疼不已,因此非常感谢您的帮助,在此先感谢您!