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大批量数据操作时临时调整内存与执行时间的方法
Apr 20 PHP
PHP常用函数和常见疑难问题解答
Mar 05 PHP
在Ubuntu 14.04上部署 PHP 环境及 WordPress
Sep 02 PHP
Zend Framework教程之Application用法实例详解
Mar 14 PHP
php使用函数pathinfo()、parse_url()和basename()解析URL
Nov 25 PHP
PHP中字符串长度的截取用法示例
Jan 12 PHP
kindeditor 加入七牛云上传的实例讲解
Nov 12 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
Mar 02 PHP
PHP基于curl模拟post提交json数据示例
Jun 22 PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 PHP
PHP实现二维数组按照指定的字段进行排序算法示例
Apr 23 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
Sep 26 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针对常规模板引擎中与CSS/JSON冲突的解决方法
2014/08/19 PHP
php获取当前月与上个月月初及月末时间戳的方法
2016/12/05 PHP
yii使用bootstrap分页样式的实例
2017/01/17 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
精解window.setTimeout()&amp;window.setInterval()使用方式与参数传递问题!
2007/11/23 Javascript
javascript 遍历验证所有文本框的值
2009/08/27 Javascript
JavaScript版的TwoQueues缓存模型
2014/12/29 Javascript
基于jQuery实现最基本的淡入淡出效果实例
2015/02/02 Javascript
Bootstrap表单布局样式源代码
2016/07/04 Javascript
JavaScript每天必学之数组和对象部分
2016/09/17 Javascript
浅谈jQuery双事件多重加载的问题
2016/10/05 Javascript
Vue.js弹出模态框组件开发的示例代码
2017/07/26 Javascript
基于ES6 Array.of的用法(实例讲解)
2017/09/05 Javascript
JavaScript实现HTML5游戏断线自动重连的方法
2017/09/18 Javascript
利用JavaScript的Map提升性能的方法详解
2019/08/14 Javascript
es6数组的flat(),flatMap()函数用法实例分析
2020/04/18 Javascript
vue中如何自定义右键菜单详解
2020/12/08 Vue.js
Nodejs实现微信分账的示例代码
2021/01/19 NodeJs
Python简单删除目录下文件以及文件夹的方法
2015/05/27 Python
python开发之thread线程基础实例入门
2015/11/11 Python
实例解析Python设计模式编程之桥接模式的运用
2016/03/02 Python
Python多进程库multiprocessing中进程池Pool类的使用详解
2017/11/24 Python
Python+tkinter使用40行代码实现计算器功能
2018/01/30 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
2018/07/17 Python
python 剪切移动文件的实现代码
2018/08/02 Python
PyQt QCombobox设置行高的方法
2019/06/20 Python
使用python制作游戏下载进度条的代码(程序说明见注释)
2019/10/24 Python
PyTorch在Windows环境搭建的方法步骤
2020/05/12 Python
vscode调试django项目的方法
2020/08/06 Python
python在一个范围内取随机数的简单实例
2020/08/16 Python
德国最大的婴儿用品网上商店:Kidsroom.de(支持中文)
2020/09/02 全球购物
银行类自荐信
2014/02/04 职场文书
餐饮营销方案
2014/02/23 职场文书
我爱我校演讲稿
2014/05/21 职场文书
酒店员工手册范本
2015/05/14 职场文书
详解Python魔法方法之描述符类
2021/05/26 Python