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

时间:2011-10-29 13:21:08

标签: php preg-match

  

可能重复:
  PHP email validation

我正在这个网站上工作,我必须在那里登记表格。我让它工作了,但后来我的朋友告诉我,一些电子邮件域名确实有连字符,比如;

test@test-tester.com

现在我的代码看起来像这样:

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

我可以看到,这应该有用,但它仍然不允许连字符。 谁知道为什么?

1 个答案:

答案 0 :(得分:1)

正则表达式总是有用,但我更喜欢使用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 =(');
}