我正在使用正则表达式来处理电子邮件格式,我认为这样可以,但客户抱怨表达式过于严格。所以他们回来了以下要求:
电子邮件必须包含“@”符号,并以.xx或.xxx即。(。nl或.com)结尾。他们很高兴通过验证。我已经启动了表达式,以查看字符串是否包含“@”符号,如下所示
^(?=。* [@])
这似乎有效,但如何添加最后一项要求(必须以.xx或.xxx结尾)?
答案 0 :(得分:2)
正则表达式只是强制执行您的两个要求:
^.+@.+\.[a-zA-Z]{2,3}$
但是,大多数语言的电子邮件验证库通常比正则表达式更好。
答案 1 :(得分:2)
我总是将此用于电子邮件
^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}" +
@"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\" +
@".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$
答案 2 :(得分:2)
无法使用RegEx验证每个电子邮件地址,但是根据您的要求,这个简单的正则表达式可以正常工作。它既不完整也不以任何方式检查错误,但它完全符合规范:
[^@]+@.+\.\w{2,3}$
说明:
答案 3 :(得分:1)
答案 4 :(得分:0)
您可以使用
[@].+\.[a-z0-9]{2,3}$
答案 5 :(得分:0)
这应该有效:
^[^@\r\n\s]+[^.@]@[^.@][^@\r\n\s]+\.(\w){2,}$
我针对这些无效的电子邮件进行了测试:
@exampleexample@domaincom.com
example@domaincom
exampledomain.com
exampledomain@.com
exampledomain.@com
example.domain@.@com
e.x+a.1m.5e@em.a.i.l.c.o
some-user@internal-email.company.c
some-user@internal-ema@il.company.co
some-user@@internal-email.company.co
@test.com
test@asdaf
test@.com
test.@com.co
这些有效的电子邮件:
example@domain.com
e.x+a.1m.5e@em.a.i.l.c.om
some-user@internal-email.company.co
修改的
这个似乎验证了该维基百科页面中的所有地址,但它可能也允许一些无效的电子邮件。括号将把它分成@:
之前和之后的所有内容^([^\r\n]+)@([^\r\n]+\.?\w{2,})$
niceandsimple@example.com
very.common@example.com
a.little.lengthy.but.fine@dept.example.com
disposable.style.email.with+symbol@example.com
other.email-with-dash@example.com
user@[IPv6:2001:db8:1ff::a0b:dbd0]
"much.more unusual"@example.com
"very.unusual.@.unusual.com"@example.com
"very.(),:;<>[]\".VERY.\"very@\\ \"very\".unusual"@strange.example.com
postbox@com
admin@mailserver1
!#$%&'*+-/=?^_`{}|~@example.org
"()<>[]:,;@\\\"!#$%&'*+-/=?^_`{}| ~.a"@example.org
" "@example.org
üñîçøðé@example.com
üñîçøðé@üñîçøðé.com