<?php$email="[email protected]";
if(!eregi('^[a-zA-Z0-9_\-.]+@[a-zA-Z0-9\-]+\.[a-zA-Z]+$',$email))
{
echo '邮箱格式不正确!';
}
else
{
echo '邮箱格式正确!';
}?>提示错误 那里有问题呢?

解决方案 »

  1.   

    ^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$
    我用的是这个验证码,
      

  2.   

    正则没有加边界。/这里是正则/if(!eregi('/^[a-zA-Z0-9_\-.]+@[a-zA-Z0-9\-]+\.[a-zA-Z]+$/',$email))
      

  3.   


    //以下为修正版
    //preg_match('/^[_a-zA-Z0-9\-\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z]+$/',$email)
    //eregi('^([_a-zA-Z0-9\-\.]).*@[a-zA-Z0-9\-]+\.[a-zA-Z]+$',$email)
    //你程序里的错误有两点,第一,'.'没转义,第二起始锚只能用于匹配一个字符串,所以后面需加'.*'吃掉剩余字符,我也不清楚为什么.所以:使用 Perl 兼容正则表达式语法的 preg_match() 函数通常是比 ereg() 更快的替代方案,而且是更通用的方案.
      

  4.   

    不是边界符的问题 
    ^[a-zA-Z0-9_\.\-] 正确'^[a-zA-Z0-9_\-.] 错误这个“\-.”点放在最后面就要出错 不知道为什么?