php email正则表达式详解
发布:smiling 来源: PHP粉丝网 添加日期:2014-07-29 16:59:13 浏览: 评论:0
一般的email,形如zhangshan@163.com,abc@sina.com.cn这样一些常用的形式就行了,但是在我们公司的一些客户中邮箱却有一些zhangshna.Mr@163.com,abc_Wang.dd@sian.com,abc_Wang.dd.cc@sian.com这种类似的形式,在@符号之前还有点.,原来是拿来就用,可是现在就不行,得自己研究正则的用法了.
原来的正则表达式,代码如下:
/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$/;
我根据我的实际情况修改后的正则表达式,代码如下:
/^(w)+(.w+)*@(w)+((.w{2,3}){1,3})$/;
或者:/^(w)+(.w+)*@(w)+((.w+)+)$/;
首先从命名下手,以@划分:
(1)左边email前缀 ——字母、数字、下划线、点和减号(只能以数字和字母开头结尾)
(2) 右边域名规则 ——字母、数字和减号(只能以数字和字母开头结尾,并且不能超过63个字符)
好了规则有了,剩下的就是匹配了,希望能尽量做到不放过一个“坏人”,代码如下:
左边[a-zd]([a-zd_.-]*[a-zd])*@([a-zd][a-zd-]{0,61}[a-zd].){1,3}[a-z]{2,6}([.][a-z]{2,3})?右边
拼起来加上^$i:/^[a-z0-9]([a-z0-9-_.]*[a-z0-9])*@([a-z0-9][a-z0-9-]{0,61}[a-z0-9].){1,3}[a-z]{2,6}([.][a-z]{2,6})?$/i
我用PHP试了一下效果还不错,就是在sql语句中用时还是会有些问题,不过已经基本满足我的要求了.
字符描述:
^ :匹配输入的开始位置。
:将下一个字符标记为特殊字符或字面值。
* :匹配前一个字符零次或几次。
+ :匹配前一个字符一次或多次。
(pattern) 与模式匹配并记住匹配。
x|y:匹配 x 或 y。
[a-z]:表示某个范围内的字符,与指定区间内的任何字符匹配。
w:与任何单词字符匹配,包括下划线。
{n,m} 最少匹配 n 次且最多匹配 m 次
$:匹配输入的结尾.
Tags: email正则 表达式
相关文章
- ·php中网址、email、手机号码正则表达代码(2014-07-29)
- ·PHP常用正则表达式汇总(2013-11-13)
- ·三分钟学会PHP正则表达式(2013-11-13)
- ·巧用PHP正则表达式判断IP地址(2013-11-13)
- ·如何用正则表达式来表示中文?(2013-11-27)
- ·常用的php正则表达式收集(2013-12-03)
- ·正则表达式例子:将MM/DD/YYYY格式的日期转换为YYYY-MM-DD格式(2013-12-09)
- ·使用Perl常规表达式进行匹配(2013-12-10)
- ·php 正则表达式获取网页所有网址和链接文字(2013-12-11)
- ·日期验证正则表达式(2013-12-11)
- ·php 正则表达式匹配中文汉字(2013-12-19)
- ·php中常用的正则表达式(日期 电话 html 中文 邮箱)(2013-12-23)
- ·php正则表达式提取图片地址 超链接 标题 实现代码(2014-01-03)
- ·PHP正则表达式匹配字符串中的指定标签(2014-01-05)
- ·php/js汉字正则表达式总结(2014-01-05)
- ·php如何对手机号码进行验证(2014-01-07)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)