javascript - 电子邮件地址验证的最佳做法(包括 gmail 地址中的 +)

标签 javascript regex validation email-validation

我知道这里有很多关于电子邮件验证和特定 RegEx 的问题。我想知道关于使用 username+anythingelse@gmail.com 技巧 ( details here ) 验证电子邮件的最佳做法是什么。我当前用于 JavaScript 验证的 RegExp 如下,但它不支持句柄中额外的 +:

/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/

是否有任何其他服务支持额外的 +?我应该在地址中允许使用 + 还是应该更改 RegEx 以仅允许使用 gmail.comgooglemail.com 的电子邮件作为域?如果是这样,修改后的 RegEx 会是什么?

更新: 感谢大家指出 + 根据规范是有效的。我不知道,现在为 future 做。对于那些说即使使用 RegEx 来验证它也不好的人,我的理由完全基于我正在构建的创意设计。我们客户的设计在其模糊输入的电子邮件地址旁边放置了一个绿色勾号或红色 X。该图标指示它是否是有效的电子邮件地址,因此我必须使用一些 JS 来验证它。

最佳答案

+valid character在电子邮件地址中。如果域不是 gmail.com 或 googlemail.com 并不重要

正则表达式实际上并不是验证电子邮件的好方法,但如果您只想修改正则表达式来处理加号,请将其更改为以下内容:

/^([a-zA-Z0-9_.-\+])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/

作为此正则表达式未根据规范进行验证的示例:根据规范,电子邮件 ..@-.com 是有效的。

关于javascript - 电子邮件地址验证的最佳做法(包括 gmail 地址中的 +),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1874104/

相关文章:

javascript - 两个正则表达式JavaScript小书签之间的区别

regex - 如何将一个字符串附加到文件中所有出现的另一个字符串

javascript - 动态表单验证 - 在满足所有条件之前进行

java - 用于指示复选框已选中的验证注释

php - Cakephp:多文件验证

javascript - 如何解决 Jest Test Code mockRestore 不起作用的问题

javascript - 只允许有一个 babel-polyfill 实例

javascript - 如何声明一个全局函数来从浏览器控制台调用 Angular 服务?

javascript - 在ngrx中,当调度一个 Action 时,是否可以不触发相关的效果?

python - 正则表达式匹配 double ## 包括任何非 double 的重复 #