php email邮箱正则


Posted in PHP onOctober 08, 2008

1.验证email:

< ?php 
 if (ereg("/^[a-z]([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?$/i; ",$email)){ 
echo “Your email address is correct!”;} 
 else{ 
echo "Please try again!"; 
} 
?>

$str = '';
$isMatched = preg_match('/^\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}$/', $str, $matches);
var_dump($isMatched, $matches);

匹配Email邮箱格式的正则表达式:

/^[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?$/i;

解析:
/内容/i 构成一个不区分大小写的正则表达式;
^ 匹配开始
$ 匹配结束
[a-z] E-Mail前缀必需是一个英文字母开头

([a-z0-9]*[-_]?[a-z0-9]+)* 和_a_2、aaa11、_1_a_2匹配,和a1_、aaff_33a_、a__aa不匹配,如果是空字符,也是匹配的,*表示0个或者多个。
*表示0个或多个前面的字符.
[a-z0-9]* 匹配0个或多个英文字母或者数字
[-_]? 匹配0个或1“-”,因为“-”不能连续出现
[a-z0-9]+ 匹配1个或多个英文字母或者数字,因为“-”不能做为结尾

@ 必需有个有@
([a-z0-9]*[-_]?[a-z0-9]+)+ 见上面([a-z0-9]*[-_]?[a-z0-9]+)*解释,但是不能为空,+表示一个或者为多个。
[\.] 将特殊字符(.)当成普通字符
[a-z]{2,3} 匹配2个至3个英文字母,一般为com或者net等.
([\.][a-z]{2})? 匹配0个或者1个[\.][a-z]{2}(比如.cn等) 不知道一般.com.cn最后部份是不是都是两位的,如果不是请修改{2}为{起始字数,结束字数}

这个用于匹配邮箱的正则表达式,还是比较强的,功能强大,覆盖广泛,有用到的朋友收藏下吧。

国际域名格式如下:

域名由各国文字的特定字符集、英文字母、数字及“-”(即连字符或减号)任意组合而成, 但开头及结尾均不能含有“-”,“-”不能连续出现 。 域名中字母不分大小写。域名最长可达60个字节(包括后缀.com、.net、.org等)。
/^[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?$/i;
/内容/i 构成一个不区分大小写的正则表达式;
^ 匹配开始
$ 匹配结束
[a-z] E-Mail前缀必需是一个英文字母开头
([a-z0-9]*[-_]?[a-z0-9]+)* 和_a_2、aaa11、_1_a_2匹配,和a1_、aaff_33a_、a__aa不匹配,如果是空字符,也是匹配的,*表示0个或者多个。
*表示0个或多个前面的字符.
[a-z0-9]* 匹配0个或多个英文字母或者数字
[-_]? 匹配0个或1“-”,因为“-”不能连续出现
[a-z0-9]+ 匹配1个或多个英文字母或者数字,因为“-”不能做为结尾
@ 必需有个有@
([a-z0-9]*[-_]?[a-z0-9]+)+ 见上面([a-z0-9]*[-_]?[a-z0-9]+)*解释,但是不能为空,+表示一个或者为多个。
[\.] 将特殊字符(.)当成普通字符
[a-z]{2,3} 匹配2个至3个英文字母,一般为com或者net等.
([\.][a-z]{2})? 匹配0个或者1个[\.][a-z]{2}(比如.cn等) 我不知道一般.com.cn最后部份是不是都是两位的,如果不是请修改{2}为{起始字数,结束字数}
完美E-Mail正则表达式,附详细讲解,请大家帮忙测试一下! 2.抽取字符串中的email:

<?php 
function getEmail($str) { 
$pattern = "/([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?/i"; 
preg_match_all($pattern,$str,$emailArr); 
return $emailArr[0]; 
} 
$emailstr = "9999@qq.com.cn俺不是米vi地方就开iid邮件列表:fuyongjie@163.com 和hh@qq.com;.;;,fuyongjie.100@yahoo.com,fu-1999@sina.com"; 
$emailArr = getEmail($emailstr); 
echo "<pre>"; 
print_r($emailArr); 
echo "</pre>"; 
?>

打印如下:
Array
(
[0] => 9999@qq.com.cn
[1] => fuyongjie@163.com
[2] => hh@qq.com
[3] => fuyongjie.100@yahoo.com
[4] => fu-1999@sina.com
)
3.比较:第2里的正则里没有了第1的^和$;

PHP 相关文章推荐
如何正确理解PHP的错误信息
Oct 09 PHP
php开发过程中关于继承的使用方法分享
Jun 17 PHP
PHP删除非空目录的函数代码小结
Feb 28 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
Oct 29 PHP
php实现在服务器上创建目录的方法
Mar 16 PHP
php中文繁体和简体相互转换的方法
Mar 21 PHP
PHP使用缓存即时输出内容(output buffering)的方法
Aug 03 PHP
thinkphp表单上传文件并将文件路径保存到数据库中
Jul 28 PHP
PHP接口继承及接口多继承原理与实现方法详解
Oct 18 PHP
php的优点总结 php有哪些优点
Jul 19 PHP
Laravel框架查询构造器 CURD操作示例
Sep 04 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
Sep 30 PHP
php获取地址栏信息的代码
Oct 08 #PHP
Cannot modify header information错误解决方法
Oct 08 #PHP
不用mod_rewrite直接用php实现伪静态化页面代码
Oct 04 #PHP
php 友好URL的实现(吐血推荐)
Oct 04 #PHP
PHP注释实例技巧
Oct 03 #PHP
使用eAccelerator加密PHP程序
Oct 03 #PHP
一些使用频率比较高的php函数
Oct 03 #PHP
You might like
常用星际术语索引(新手指南)
2020/03/04 星际争霸
需要注意的几个PHP漏洞小结
2012/02/05 PHP
PHP删除目录及目录下所有文件的方法详解
2013/06/06 PHP
全新Mac配置PHP开发环境教程
2016/02/03 PHP
yii框架搜索分页modle写法
2016/12/19 PHP
jquery.alert 弹出式复选框实现代码
2009/06/15 Javascript
jquery 防止表单重复提交代码
2010/01/21 Javascript
jquery乱码与contentType属性设置问题解决方案
2013/01/07 Javascript
javascript scrollTop正解使用方法
2013/11/14 Javascript
js 实现菜单上下显示附效果图
2013/11/21 Javascript
浅析javascript 定时器
2014/12/23 Javascript
jQuery中:hidden选择器用法实例
2014/12/30 Javascript
jquery获取css的color值返回RGB的方法
2015/12/18 Javascript
微信jssdk用法汇总
2016/07/16 Javascript
bootstrap table 数据表格行内修改的实现代码
2017/02/13 Javascript
vue中的非父子间的通讯问题简单的实例代码
2017/07/19 Javascript
web3.js增加eth.getRawTransactionByHash(txhash)方法步骤
2018/03/15 Javascript
微信小程序如何引用外部js,外部样式,公共页面模板
2019/07/23 Javascript
JQuery插件tablesorter表格排序实现过程解析
2020/05/28 jQuery
vue+elementUI实现简单日历功能
2020/09/24 Javascript
python 判断自定义对象类型
2009/03/21 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
2018/05/29 Python
python实现连续变量最优分箱详解--CART算法
2019/11/22 Python
windows下python安装pip方法详解
2020/02/10 Python
Python获取二维数组的行列数的2种方法
2020/02/11 Python
最简单的matplotlib安装教程(小白)
2020/07/28 Python
艺龙旅行网酒店预订:国内、港澳台酒店
2018/06/26 全球购物
Java提供了哪些企业应用编程接口
2015/02/13 面试题
英文简历中的自我评价
2013/10/06 职场文书
个人现实表现材料
2014/02/04 职场文书
怎样写离婚协议书
2014/09/10 职场文书
师德师风自我评价范文
2014/09/11 职场文书
授权委托书协议书
2014/10/16 职场文书
会计实训报告范文
2014/11/04 职场文书
2016高考感言
2015/08/01 职场文书
六年级作文之预言作文
2019/10/25 职场文书