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 相关文章推荐
PHP5中使用DOM控制XML实现代码
May 07 PHP
php中取得URL的根域名的代码
Mar 23 PHP
php学习笔记 [预定义数组(超全局数组)]
Jun 09 PHP
PHP实现加密的几种方式介绍
Feb 22 PHP
Thinkphp模板标签if和eq的区别和比较实例分析
Jul 01 PHP
Joomla调用系统自带编辑器的实现方法
May 05 PHP
PHP生成各种随机验证码的方法总结【附demo源码】
Jun 05 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
Jun 09 PHP
PHP实现权限管理功能示例
Sep 22 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
May 23 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
Feb 27 PHP
Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解
Apr 06 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
PHP 中检查或过滤IP地址的实现代码
2011/11/27 PHP
PHP安装threads多线程扩展基础教程
2015/11/17 PHP
基于php实现随机合并数组并排序(原排序)
2015/11/26 PHP
jQuery UI Autocomplete 1.8.16 中文输入修正代码
2012/04/16 Javascript
JS中实现简单Formatter函数示例代码
2014/08/19 Javascript
jQuery插件slicebox实现3D动画图片轮播切换特效
2015/04/12 Javascript
JS实现从网页顶部掉下弹出层效果的方法
2015/08/06 Javascript
jQuery点击按钮弹出遮罩层且内容居中特效
2015/12/14 Javascript
jquery.validate提示错误信息位置方法
2016/01/22 Javascript
NodeJS整合银联网关支付(DEMO)
2016/11/09 NodeJs
网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
2016/12/14 Javascript
微信小程序画布圆形进度条显示效果
2020/11/17 Javascript
学习jQuery中的noConflict()用法
2018/09/28 jQuery
详解webpack引入第三方库的方式以及注意事项
2019/01/15 Javascript
js Array.slice的8种不同用法示例
2019/07/10 Javascript
js图数据结构处理 迪杰斯特拉算法代码实例
2019/09/11 Javascript
js实现无缝轮播图插件封装
2020/07/31 Javascript
微信小程序实现点击生成随机验证码
2020/09/09 Javascript
python使用Queue在多个子进程间交换数据的方法
2015/04/18 Python
探究Python多进程编程下线程之间变量的共享问题
2015/05/05 Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
2017/08/30 Python
如何利用python查找电脑文件
2018/04/27 Python
python 执行shell命令并将结果保存的实例
2018/05/11 Python
python 3调用百度OCR API实现剪贴板文字识别
2018/09/04 Python
Appium Python自动化测试之环境搭建的步骤
2019/01/23 Python
python基础教程之while循环
2019/08/14 Python
python 星号(*)的多种用途
2020/09/21 Python
html5跨域通讯之postMessage的用法总结
2013/11/07 HTML / CSS
英国领先的男士美容护发用品公司:Mankind
2016/08/31 全球购物
Hurley官方网站:扎根于海滩生活方式的全球青年文化品牌
2020/05/18 全球购物
德国最大的婴儿用品网上商店:Kidsroom.de(支持中文)
2020/09/02 全球购物
大学生求职推荐信
2013/11/27 职场文书
酒店管理专业毕业生自我鉴定
2014/09/29 职场文书
2014年领导班子工作总结
2014/12/11 职场文书
星际争霸:毕姥爷vs解冻01
2022/04/01 星际争霸
keepalived + nginx 实现高可用方案
2022/12/24 Servers