JavaScript 电子邮件正则表达式

标签 javascript regex email

我发现了一个不错的电子邮件正则表达式的描述。

/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/

但我还想在电子邮件的第一部分中包含一些标点符号,同时保留其余功能(例如不重复。)

到目前为止我想到的最好的是:

([\/!#$%&'*+-=?^_`{|}~]*\w+)([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,40})+$

但这不允许在电子邮件第一部分的末尾使用标点符号。

我发现正则表达式很困惑,有谁知道如何正确实现它?

示例:

Yes email@domain.com
Yes firstname.lastname@domain.com
Yes email@subdomain.domain.com
Yes firstname+lastname@domain.com
Yes email@123.123.123.123
Yes email@[123.123.123.123]
Yes "email"@domain.com
Yes 1234567890@domain.com
Yes email@domain-one.com
Yes _______@domain.com
Yes email@domain.name
Yes email@domain.co.jp
Yes firstname-lastname@domain.com
No  plainaddress
No  #@%^%#$@#$@#.com
No  @domain.com
No  Joe Smith <email@domain.com>
No  email@domain@domain.com
No  .email@domain.com
No  email.@domain.com
No  email..email@domain.com
No  あいうえお@domain.com
No  email@domain.com (Joe Smith)
No  email@domain
No  email@-domain.com
No  email@domain.web

最佳答案

这是我现在最接近的尝试,我认为它大致正确

^[a-zA-Z0-9_!#$%&‘*\=\+\/\?^{|}~]+([\.-]?[a-zA-Z0-9_!#$%&‘*\=\+\/\?^{|}~]+)*@\w+([\.-]?\w+)*(\.\w{2,50})+$

关于JavaScript 电子邮件正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34394784/

相关文章:

regex - 在插入时从字符串中删除特殊字符?

html - Outlook 2010 电子邮件模板中的表格问题

email - 如何在函数修改单元格值时触发电子邮件通知

javascript - 每次按下 TAB 键选择不同的单词

java - 索引正则表达式(最好在 Lucene 中)

regex - 如何从perl中的字符串中提取2个以上字符的单词

node.js - 如何让 Nodemailer 工作?

javascript - Angularjs ngRoute 不工作

javascript - 如何在某些设备宽度以下禁用 JQuery?

javascript - 如何将数组数据提交到 bootstrap/zurb foundation modal