看到别人写的正则是如下:   
 if (!preg_match('/^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/',$_string))   
其中对于中括号及里面的理解,我是这样的:中括号表示其中任意一项;   
那么,上面这段中的它[\w\-\.]我就理解成了前面第一个打头的 可以是所有任意英文字符,或是横杠,或是点都可以
如果上面的理解对,那么 问题来了,这段代码的作用是为了验证email的正确性。   
大家知道email第一个打头的不能是横杠,这不就错了吗?
回复讨论(解决方案)    现在很多邮箱校验都是粗略校验,因为有的服务商确实支持诡异写法。我觉得宁可漏网,不要错抓,就好了,别让用户不能用。  
附一个dropbox国外网站,email验证的源码:
$r = preg_match('/^[a-za-z0-9!#$%&\'*+\/=?^_`{|}~-]+(\.[a-za-z0-9!#$%&\'*+\/=?^_`{|}~-]+)*@[a-za-z0-9-]+(\.[a-za-z0-9-]+)*\.([a-za-z]{2,})$/', $email);
现在很多邮箱校验都是粗略校验,因为有的服务商确实支持诡异写法。我觉得宁可漏网,不要错抓,就好了,别让用户不能用。   
附一个dropbox国外网站,email验证的源码:
$r = preg_match('/^[a-za-z0-9!#$%&\'*+\/=?^_`{|}~-]+(\.[a-za-z0-9!#$%&\'*+\/=?^_`{|}~-]+)*@[a-za-z0-9-]+(\.[a-za-z0-9-]+)*\.([a-za-z]{2,})$/', $email);
你二啊,文不对题!我问的是我的理解对吗,你个二货? 
    你的正则可以匹配   ...@....net  
你说对吗?
现在很多邮箱校验都是粗略校验,因为有的服务商确实支持诡异写法。我觉得宁可漏网,不要错抓,就好了,别让用户不能用。    
附一个dropbox国外网站,email验证的源码:
$r = preg_match('/^[a-za-z0-9!#$%&\'*+\/=?^_`{|}~-]+(\.[a-za-z0-9!#$%&\'*+\/=?^_`{|}~-]+)*@[a-za-z0-9-]+(\.[a-za-z0-9-]+)*\.([a-za-z]{2,})$/', $email);
你二啊,文不对题!我问的是我的理解对吗,你个二货?
你的态度,注定了你的发展。     \w 大小写英文字母,数字,下划线  
这正则能匹配到  .@..__     _@_._   -@-.0   .....  
正则有问题
理解没问题,态度有问题。
操你妈,有问题
   
 
   