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 相关文章推荐
mysql5写入和读出乱码解决
Nov 25 PHP
非常不错的MySQL优化的8条经验
Mar 24 PHP
php相当简单的分页类
Oct 02 PHP
如何使用php绘制在图片上的正余弦曲线
Jun 08 PHP
ThinkPHP表单自动验证实例
Oct 13 PHP
推荐一本PHP程序猿都应该拜读的书
Dec 31 PHP
PHP 使用redis简单示例分享
Mar 05 PHP
Centos下升级php5.2到php5.4全记录(编译安装)
Apr 03 PHP
php获取本周星期一具体日期的方法
Apr 20 PHP
php实现的生成迷宫与迷宫寻址算法完整实例
Nov 06 PHP
php实现session共享的实例方法
Sep 19 PHP
PHP safe_mode开启对于PHP系统函数有什么影响
Nov 10 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
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
2009/04/24 PHP
双冒号 ::在PHP中的使用情况
2015/11/05 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
理清PHP在Linxu下执行时的文件权限方法
2017/06/07 PHP
PHP实现数据库的增删查改功能及完整代码
2018/04/18 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
2020/04/14 PHP
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
jQuery中next()方法用法实例
2015/01/07 Javascript
触屏中的JavaScript事件分析
2015/02/06 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
2016/10/11 Javascript
js字符串操作总结(必看篇)
2016/11/22 Javascript
Bootstrap笔记之缩略图、警告框实例详解
2017/03/09 Javascript
JS触摸事件、手势事件详解
2017/05/04 Javascript
webpack学习教程之前端性能优化总结
2017/12/05 Javascript
vue 实现类似淘宝星级评分的示例
2018/03/01 Javascript
简单的三步vuex入门
2018/05/20 Javascript
jQuery创建及操作xml格式数据示例
2018/05/26 jQuery
原生js实现下拉选项卡
2019/11/27 Javascript
解决vue请求接口第一次成功,第二次失败问题
2020/09/08 Javascript
[46:04]Liquid vs VP Supermajor决赛 BO 第四场 6.10
2018/07/05 DOTA
python编码总结(编码类型、格式、转码)
2016/07/01 Python
用python做一个搜索引擎(Pylucene)的实例代码
2017/07/05 Python
Python实现找出数组中第2大数字的方法示例
2018/03/26 Python
python之django母板页面的使用
2018/07/03 Python
Python 字符串转换为整形和浮点类型的方法
2018/07/17 Python
python 将有序数组转换为二叉树的方法
2019/03/26 Python
Python中py文件转换成exe可执行文件的方法
2019/06/14 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
2019/07/19 Python
使用python去除图片白色像素的实例
2019/12/12 Python
Django中的DateTimeField和DateField实现
2021/02/24 Python
澳大利亚领先的睡衣品牌:Peter Alexander
2016/08/16 全球购物
会计师事务所审计实习自我鉴定
2013/09/20 职场文书
学前班学生评语
2014/12/29 职场文书
客房领班岗位职责
2015/02/11 职场文书
如何书写你的职业生涯规划书?
2019/06/27 职场文书
Windows11 Insider Preview Build 25206今日发布 更新内容汇总
2022/09/23 数码科技