日期:2014-05-18  浏览次数:20491 次

如何让这个邮箱正则表达式可以有.
re   =   /^([_a-z0-9]*)@([a-z0-9-]{2,}(\.[a-z0-9-]{2,})*\.[a-z]{2,3})$/i;

上面这个正则一般的邮箱是可以通过的
但前面有小.的就不行,例如:
abc@abc.com       可以
ab.c@abc.com       就不行

不知道该如何修改这个正则

------解决方案--------------------
如果你只是想修改原有的,允许前面带“.”,那这样就行了

re = /^([_a-z0-9.]*)@([a-z0-9-]{2,}(\.[a-z0-9-]{2,})*\.[a-z]{2,3})$/i;

如果不允许首字符为“.”,这样

re = /^(?!\.)([_a-z0-9.]*)@([a-z0-9-]{2,}(\.[a-z0-9-]{2,})*\.[a-z]{2,3})$/i;
------解决方案--------------------
只要这样即可
re = /^([_a-z0-9.]*)@([a-z0-9-]{2,}(\.[a-z0-9-]{2,})*\.[a-z]{2,3})$/i;
------解决方案--------------------
不过以上这些正则都无法避免两个.在一起的情况
ab......c@abc.com

改动一下:
re = /^([_a-z0-9]{1,}\.{1}[_a-z0-9]*)*@([a-z0-9-]{2,}(\.[a-z0-9-]{2,})*\.[a-z]{2,3})$/i;

这样就可以判断出以上不合法的情况,以及首字符不能为.的情况