我发现这个简单的正则表达式(我知道它可能并不完美)在线某处验证电子邮件地址。
/^(?:\w+\.?)*\w+@(?:\w+\.)+\w+$/
问题是,这个正则表达式不允许以下情况:
myname@test-domain.com
my-name@test-domain.com
有什么想法吗?
PS。我在javascript中使用这个正则表达式。
答案 0 :(得分:5)
如果您只想添加连字符,可以将正则表达式更改为:
/^(?:\w+[\-\.])*\w+@(?:\w+[\-\.])*\w+\.\w+$/
添加其他特殊字符,例如像下划线只是将它们放在第一个(而不是第二个)方括号对中,即将[\-\.]
更改为[\-\._]
。