1
Quaintjade 2014-05-27 16:42:08 +08:00
PHP的话,filter_var($str, FILTER_VALIDATE_EMAIL) 就行,有些东西不必再发明车轮。
|
2
Sdhjt 2014-05-27 17:09:12 +08:00
我用的这个:
^\w+([-.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ 有时候正则没必要完全精确匹配,否则 书写麻烦:LZ举例我就不说明了 无法准确验证:书写复杂的正则,看上去很NB,但很容易误杀,比如你考虑过中文域名么。。。。 效率低下:我试验过,复杂的正则效率非常低。就拿上面的正则来说,是无法判断email地址是否包含下划线,也无法判断email地址长度是否超标的,但是效率可以接受。我测试过用再复杂点的正则去判断,效率反而比用if判断慢几倍。 正则不是万能的,还是用if辅助一下靠谱。 |
3
Mutoo 2014-05-27 17:27:23 +08:00
RFC是业界标准,如果你非要用,选这个准没错。
|
5
dajiangyou 2014-05-27 17:38:30 +08:00
@vellow IP后缀求科普。。。
|
7
akfish 2014-05-27 19:11:35 +08:00
兼容rfc理论上是没错的,而且也是现成写好的,又不是每次要你背出来。
不过从实用简单的标准来讲,以大多数email服务提供商允许的用户名规则来写表达式就行了,奇葩地址出现概率太低,专门去兼容意义不大。 |
8
decken 2014-05-27 19:13:46 +08:00
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
月光博客上的. |
9
chemzqm 2014-05-27 19:23:37 +08:00
/.+\@.+\..+/ 对用户和开发者宽容点吧
|
10
wzxjohn 2014-05-27 20:46:50 +08:00
又学到了一招。以后去炫耀一下=。=
|