preg_match电子邮件验证.(将连字符添加到域点)


preg_match email validation. (Adding hyphen to domain spot)

可能重复:
PHP电子邮件验证

我在这个网站上工作,在那里我必须制作一个注册表。我成功了,但后来我的朋友告诉我,有些电子邮件域名中确实有连字符,比如;

test@test-tester.com

现在我的代码是这样的:

preg_match("/^[a-zA-Z0-9._'-]'w+('.'w+)*'@'w+('.[a-zA-Z0-9._-]+)*'.[a-zA-Z.]{2,6}$/", $_POST["email"]

据我所见,这应该可以工作,但它仍然不允许使用连字符。有人知道为什么吗?

Regex总是很有用的,但我更喜欢使用filter_var来验证电子邮件

http://www.php.net/manual/en/filter.filters.validate.php

if(filter_var($email, FILTER_VALIDATE_EMAIL))
{
    print('valid Email!');
}
else
{
    print('invalid-email =(');
}