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二分法在IP地址查询中的应用
Aug 12 PHP
PHP在字符串中查找指定字符串并删除的代码
Oct 02 PHP
ExtJS与PHP、MySQL实现存储的方法
Apr 02 PHP
如何使用php判断所处服务器操作系统的类型
Jun 20 PHP
测试php连接mysql是否成功的代码分享
Jan 24 PHP
php文件服务实现虚拟挂载其他目录示例
Apr 17 PHP
php制作文本式留言板
Mar 18 PHP
PHP7+Nginx的配置与安装教程详解
May 10 PHP
PHP合并数组的2种方法小结
Nov 24 PHP
php 实现银联商务H5支付的示例代码
Oct 12 PHP
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
Apr 01 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
header()函数使用说明
2006/11/23 PHP
什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释
2015/07/01 PHP
PHP实现抓取迅雷VIP账号的方法
2015/07/30 PHP
js 为label标签和div标签赋值的方法
2013/08/08 Javascript
使用JavaScript修改浏览器URL地址栏的实现代码
2013/10/21 Javascript
jQuery拖拽div实现思路
2014/02/19 Javascript
js读取并解析JSON类型数据的方法
2015/11/14 Javascript
jquery.cookie.js用法实例详解
2015/12/25 Javascript
node.js微信公众平台开发教程
2016/03/04 Javascript
详解jQuery中的deferred对象的使用(一)
2016/05/27 Javascript
javascript数字验证的实例代码(推荐)
2016/08/20 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
2016/08/24 Javascript
Vue.js第一天学习笔记(数据的双向绑定、常用指令)
2016/12/01 Javascript
nodejs实现邮件发送服务实例分享
2017/03/29 NodeJs
微信小程序本地缓存数据增删改查实例详解
2017/05/24 Javascript
详解vue-cli构建项目反向代理配置
2017/09/07 Javascript
jQuery 利用ztree实现树形表格的实例代码
2017/09/27 jQuery
解决JQuery全选/反选第二次失效的问题
2017/10/11 jQuery
vue树形结构获取键值的方法示例
2018/06/21 Javascript
vue 实现单选框设置默认选中值
2019/11/07 Javascript
python遍历目录的方法小结
2016/04/28 Python
使用Python的Scrapy框架十分钟爬取美女图
2016/12/26 Python
python 实现分页显示从es中获取的数据方法
2018/12/26 Python
对python3中, print横向输出的方法详解
2019/01/28 Python
python+selenium 点击单选框-radio的实现方法
2019/09/03 Python
Python可变参数会自动填充前面的默认同名参数实例
2019/11/18 Python
浅谈HTML5新增及移除的元素
2016/06/27 HTML / CSS
SAZAC的动物连体衣和动物睡衣:Kigurumi Shop
2020/03/14 全球购物
美国床垫连锁店:Mattress Firm
2021/02/13 全球购物
一些网络技术方面的面试题
2014/05/01 面试题
sealed修饰符是干什么的
2012/10/23 面试题
大学毕业登记表自我鉴定
2013/10/09 职场文书
会计电算化专业求职信
2014/06/10 职场文书
珠宝的促销活动方案
2014/08/31 职场文书
怎么写工作检讨书
2014/11/16 职场文书
Python实现简单得递归下降Parser
2022/05/02 Python