就是写一个正则表达式 表示出email email中不是有-吗?怎么能正确表示出来呢?

解决方案 »

  1.   

    eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$",$email)你看着,它也是直接写的,只不过多了一个中括号而已
      

  2.   

    '-'在正则中表示范围
    要表示'-'需要转义'\-'例: preg_match('/[\-]/',$str);
      

  3.   

    补充当'-'在中括号中时,如:
    [a-z]表示范围,也可以单独使用[-],表示'-',测试程序:
    $str = "-ddd";
    if(preg_match('/[-].*/',$str))
    {
        echo("ok");
    }
    else
    {
        echo("bad");
    }rs: ok
      

  4.   

    按楼主的说法,可能是把 '-' 放在了中间,如果在[]中使用,其实不用转义符,把 - 放在结束位置就行了
    这样Email只能为: "[\._a-zA-Z0-9@-]"