【发布时间】:2009-01-21 16:02:25
【问题描述】:
我在 Javascript 中有相同的表达式,但它在 PHP 中无法用于服务器端验证。这是代码
if (ereg('/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\\.([a-zA-Z])+([a-zA-Z])+/',$_POST['email-address']))
echo "valid email";
else
echo "invalid email";
【问题讨论】:
-
您的正则表达式似乎是 preg_match 格式而不是 ereg 格式...最明显的是前导和尾随 / 字符。
-
您的正则表达式是否处理名称部分中的“+”?乍一看,它似乎没有。这里有一篇关于将电子邮件作为正则表达式处理的好文章regular-expressions.info/email.html
-
太好了,正则表达式中的另一个电子邮件“验证器”... :-( Gumbo 的建议很好!顺便说一句,([a-zA-Z])+([a-zA-Z ])+ 看起来很奇怪。我想知道您为什么要进行如此多的捕获而不使用它们。