【发布时间】:2011-06-03 12:26:43
【问题描述】:
我无法在 PHP 中使用 preg_match() 来验证电子邮件地址。我已经使用http://www.regexer.com 工具测试了我在 Internet 上找到的 RegEx 表达式,并且可以在我的 PHP 应用程序中使用的相同输入正常工作。
正则表达式:
^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$
正则表达式:http://regexr.com?2sr2a
我在 PHP 中这样应用它:
$email = "local@test.com";
$pattern = "/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix";
if (false == preg_match($pattern, $email))
echo "false";
当然,我对这封电子邮件和我测试过的其他电子邮件有误。我认为表达式格式正确,因为在正则表达式上我可以测试并且它可以工作。我申请错了什么?
提前谢谢你!
【问题讨论】:
-
无法复制。正则表达式没问题。
-
示例代码对我来说很好用。
-
为我工作:ideone.com/IkQo2
-
@SirDarius:谢谢。这就是问题所在! :)
-
Gazillion duplicates - 使用 PHP 的原生
filter_var而不是正则表达式