我发现了一个不错的电子邮件正则表达式的描述。
/^\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/