简单的email-regexp不允许在@之前和之后使用连字符

时间:2013-03-13 15:41:16

标签: regex validation email

我发现这个简单的正则表达式(我知道它可能并不完美)在线某处验证电子邮件地址。

/^(?:\w+\.?)*\w+@(?:\w+\.)+\w+$/

问题是,这个正则表达式不允许以下情况:

myname@test-domain.com
my-name@test-domain.com

有什么想法吗?

PS。我在javascript中使用这个正则表达式。

1 个答案:

答案 0 :(得分:5)

如果您只想添加连字符,可以将正则表达式更改为:

/^(?:\w+[\-\.])*\w+@(?:\w+[\-\.])*\w+\.\w+$/

添加其他特殊字符,例如像下划线只是将它们放在第一个(而不是第二个)方括号对中,即将[\-\.]更改为[\-\._]

另请查看this question and its anwer.