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程序漏洞产生的原因分析与防范方法说明
Mar 06 PHP
codeigniter框架The URI you submitted has disallowed characters错误解决方法
May 06 PHP
ThinkPHP页面跳转success与error方法概述
Jun 25 PHP
基于JQuery+PHP编写砸金蛋中奖程序
Sep 08 PHP
PHP内存使用情况如何获取
Oct 10 PHP
PHP闭包函数传参及使用外部变量的方法
Mar 15 PHP
PHP封装的多文件上传类实例与用法详解
Feb 07 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
Mar 15 PHP
thinkphp分页集成实例
Jul 24 PHP
Laravel框架实现定时发布任务的方法
Aug 16 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
May 27 PHP
PHP isset()及empty()用法区别详解
Aug 29 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
整理的9个实用的PHP库简介和下载
2010/11/09 PHP
php FLEA中二叉树数组的遍历输出
2012/09/26 PHP
仿Aspnetpager的一个PHP分页类代码 附源码下载
2012/10/08 PHP
PHP实现无限极分类图文教程
2014/11/25 PHP
PHP实现HTTP断点续传的方法
2015/06/17 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
2015/12/02 PHP
JavaScript判断两种格式的输入日期的正确性的代码
2007/03/25 Javascript
MooTools 1.2介绍
2009/09/14 Javascript
input输入框的自动匹配(原生代码)
2013/03/19 Javascript
JS 如何获取radio选中后的值及不选择取radio的值
2013/10/28 Javascript
弹出窗口并且此窗口带有半透明的遮罩层效果
2014/03/13 Javascript
javascript将浮点数转换成整数的三个方法
2014/06/23 Javascript
jQuery修改CSS伪元素属性的方法
2014/07/30 Javascript
js实现顶部可折叠的菜单工具栏效果实例
2015/05/09 Javascript
使用DeviceOne实现微信小程序功能
2016/12/29 Javascript
js 递归和定时器的实例解析
2017/02/03 Javascript
React之PureComponent的使用作用
2018/07/10 Javascript
js/jquery遍历对象和数组的方法分析【forEach,map与each方法】
2019/02/27 jQuery
js String.prototype.trim字符去前后空格的扩展
2020/08/23 Javascript
vue-cli3 引入 font-awesome的操作
2020/08/11 Javascript
Python中的with...as用法介绍
2015/05/28 Python
python计算文本文件行数的方法
2015/07/06 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
2019/01/08 Python
Python @property及getter setter原理详解
2020/03/31 Python
如何在mac版pycharm选择python版本
2020/07/21 Python
把Anaconda中的环境导入到Pycharm里面的方法步骤
2020/10/30 Python
详解Python中openpyxl模块基本用法
2021/02/23 Python
Html5嵌入钉钉的实现示例
2020/06/04 HTML / CSS
科技工作者先进事迹
2014/08/16 职场文书
渠道运营商合作协议书范本
2014/10/06 职场文书
2014年党员发展工作总结
2014/12/02 职场文书
2014年幼儿园教研工作总结
2014/12/04 职场文书
2015年新农合工作总结
2015/03/30 职场文书
python b站视频下载的五种版本
2021/05/27 Python
Python语法学习之进程的创建与常用方法详解
2022/04/08 Python
详解Android中的TimePickerView(时间选择器)的用法
2022/04/30 Java/Android