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 相关文章推荐
discuz论坛 用户登录 后台程序代码
Nov 27 PHP
php5.2以下版本无json_decode函数的解决方法
May 25 PHP
php+ajax实现图片文件上传功能实例
Jun 17 PHP
Yii不依赖Model的表单生成器用法实例
Dec 04 PHP
PHP中preg_match正则匹配中的/u、/i、/s含义
Apr 17 PHP
PHP统计当前在线用户数实例讲解
Oct 21 PHP
学习php设计模式 php实现抽象工厂模式
Dec 07 PHP
详解PHP匿名函数与注意事项
Mar 29 PHP
php实现等比例压缩图片
Jul 26 PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
Jun 22 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
Mar 23 PHP
PHP Ajax跨域问题解决方案代码实例
Aug 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
虹吸壶是谁发明的?煮出来的咖啡好喝吗
2021/03/04 冲泡冲煮
基于PHP创建Cookie数组的详解
2013/07/03 PHP
PHP+memcache实现消息队列案例分享
2014/05/21 PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
2015/03/10 PHP
PHP使用mysql_fetch_row查询获得数据行列表的方法
2015/03/18 PHP
php实现无限级分类(递归方法)
2015/08/06 PHP
Laravel框架实现利用中间件进行操作日志记录功能
2018/06/06 PHP
js调试工具 Javascript Debug Toolkit 2.0.0版本发布
2008/12/02 Javascript
JavaScript中的类继承
2010/11/25 Javascript
js 判断一个元素是否在页面中存在
2012/12/27 Javascript
简单的两种Extjs formpanel加载数据的方式
2013/11/09 Javascript
jQuery实用函数用法总结
2014/08/29 Javascript
Angularjs 基础入门
2014/12/26 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
JS实现CheckBox复选框全选、不选或全不选功能
2020/07/28 Javascript
基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
2016/05/12 Javascript
JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()
2016/08/11 Javascript
基于jQuery实现的打字机效果
2017/01/16 Javascript
在 Angular 中实现搜索关键字高亮示例
2017/03/21 Javascript
js实现简单数字变动效果
2017/11/06 Javascript
Postman模拟发送带token的请求方法
2018/03/31 Javascript
JavaScript实用代码小技巧
2018/08/23 Javascript
详解在create-react-app使用less与antd按需加载
2018/12/06 Javascript
详解Python odoo中嵌入html简单的分页功能
2019/05/29 Python
Django ModelForm组件使用方法详解
2019/07/23 Python
Python中pyecharts安装及安装失败的解决方法
2020/02/18 Python
关于Python字符串显示u...的解决方式
2020/03/06 Python
谈谈python垃圾回收机制
2020/09/27 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
2021/01/06 Python
好莱坞百老汇御用王牌美妆:Koh Gen Do 江原道
2018/04/03 全球购物
护士思想汇报
2014/01/12 职场文书
《赠汪伦》教学反思
2014/04/12 职场文书
2014年秋季开学演讲稿
2014/05/24 职场文书
读《方与圆》有感:交友方圆有度
2020/01/14 职场文书
SQLServer2019 数据库环境搭建与使用的实现
2021/04/08 SQL Server
Redis高级数据类型Hyperloglog、Bitmap的使用
2021/05/24 Redis