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 相关文章推荐
回答PHPCHINA上的几个问题:URL映射
Feb 14 PHP
php面向对象全攻略 (四)构造方法与析构方法
Sep 30 PHP
实现获取http内容的php函数分享
Feb 16 PHP
ThinkPHP3.1查询语言详解
Jun 19 PHP
PHP中创建图像并绘制文字的例子
Nov 19 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
Feb 08 PHP
PHP上传图片类显示缩略图功能
Jun 30 PHP
Laravel手动分页实现方法详解
Oct 09 PHP
jQuery+php简单实现全选删除的方法
Nov 28 PHP
PHP 表单提交及处理表单数据详解及实例
Dec 27 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
Aug 28 PHP
PHP 布尔值的自增与自减的实现方法
May 03 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
虫族 ZERG 概述
2020/03/14 星际争霸
php 不使用js实现页面跳转
2014/02/11 PHP
PHP实现仿Google分页效果的分页函数
2015/07/29 PHP
Symfony2联合查询实现方法
2016/03/18 PHP
Yii遍历行下每列数据的方法
2016/10/17 PHP
thinkPHP中钩子的两种配置调用方法详解
2016/11/11 PHP
PHP基于socket实现的简单客户端和服务端通讯功能示例
2017/07/10 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
2018/11/30 PHP
User Scripts: Video Download by User Scripts
2007/05/14 Javascript
nodejs中使用monk访问mongodb
2014/07/06 NodeJs
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码
2016/08/15 Javascript
angularJS实现动态添加,删除div方法
2018/02/27 Javascript
基于JavaScript实现瀑布流布局
2018/08/15 Javascript
JS实现百度搜索框关键字推荐
2020/02/17 Javascript
BootStrap前端框架使用方法详解
2020/02/26 Javascript
Django中实现一个高性能计数器(Counter)实例
2014/07/09 Python
Python获取Linux系统下的本机IP地址代码分享
2014/11/07 Python
Python探索之静态方法和类方法的区别详解
2017/10/27 Python
Python3用tkinter和PIL实现看图工具
2018/06/21 Python
Django框架中序列化和反序列化的例子
2019/08/06 Python
Python进度条的制作代码实例
2019/08/31 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
2020/09/04 Python
python中实现栈的三种方法
2020/12/19 Python
css3实现蒙版弹幕功能
2019/06/18 HTML / CSS
本科生求职信
2014/06/17 职场文书
学用政策心得体会
2014/09/10 职场文书
王兆力在市委党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
安全承诺书格式范本
2015/04/28 职场文书
教师聘用意向书
2015/05/11 职场文书
写给同事的离职感言
2015/08/04 职场文书
2015年国庆节寄语
2015/08/17 职场文书
创业计划书之美容店
2019/09/16 职场文书
Vue2项目中对百度地图的封装使用详解
2022/06/16 Vue.js