php中邮箱地址正则表达式实现与详解

 更新时间:2012年04月24日 20:20:07   作者:  
本文章不但要讲述了关于正则达式而且还讲述了关于邮箱正则的构成用法详解,有需要了解的朋友可以参考一下,同时我们也提供了多种不同的邮箱验证实例
首先附上代码
复制代码 代码如下:

^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$

在这段正则表达式中,“+”表示前面的字符串连续出现一个或多个;“^”表示下一个字符串必须出现在开头,“$”表示前一个字符串必须出现在结尾;
“.”也就是“.”,这里“”是转义符;“{2,3}”表示前面的字符串可以连续出现2-3次。“()”表示包含的内容必须同时出现在目标对象中。“[_.0-9a-z-]”表示包含在“_”、“.”、“-”、从a到z范围内的字母、从0到9范围内的数字中的任意字符;
这样一来,这个正则表达式可以这样翻译:
“下面的字符必须在开头(^)”、“该字符必须包含在“_”、“.”、“-”、从a到z范围内的字母、从0到9范围内的数字中([_.0-9a-z-])”、“前面这个字符至少出现一次(+)”、@、“该字符串由一个包含在从a到z范围内的一个字母、从0到9范围内的数字中的字符开头,后面跟至少一个包含在“-”、从a到z范围内任何一个字母、从0到9范围内任何一个数字中的字符,最后以.结束(([0-9a-z][0-9a-z-]+.))”、“前面这个字符至少出现一次(+)”、“从a到z范围内的字母出现2-3次,并以它结束([a-z]{2,3}$)”
复制代码 代码如下:

function is_valid_email($email, $test_mx = false)
{
if(eregi("^([_a-z0-9-]+)(.[_a-z0-9-]+)*@([a-z0-9-]+)(.[a-z0-9-]+)*(.[a-z]{2,4})[ wind_phpcode_0 ]quot;, $email))
if($test_mx)
{
list($username, $domain) = split("@", $email);
return getmxrr($domain, $mxrecords);
}
else
return true;
else
return false;
}

域名由各国文字的特定字符集、英文字母、数字及“-”(即连字符或减号)任意组合而成, 但开头及结尾均不能含有“-”,“-”不能连续出现 。 域名中字母不分大小写。域名最长可达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的^和$;

再看实例
复制代码 代码如下:

function funcemail($str)//邮箱正则表达式
{
return (preg_match('/^[_.0-9a-z-a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$/',$str))?true:false;
}//验证方法一
$str="qbcd@126.com.cn";
preg_match("/^[0-9a-z]+@(([0-9a-z]+)[.])+[a-z]{2,3}$/",$str,$re);
print_r($re);//邮箱验证二
if (eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$",$email)) {
echo "您的 e-mail 通过初步检查";
}//第三种邮箱验证方法

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!";
}

相关文章

  • PHP程序员学习使用Swoole的理由

    PHP程序员学习使用Swoole的理由

    这篇文章给大家详细分析了为什么PHP程序员需要学习使用Swoole,并通过实例做了分析,有兴趣的朋友参考下。
    2018-06-06
  • 详解php中空字符串和0之间的关系

    详解php中空字符串和0之间的关系

    最近工作需要,在处理关于经纬度的问题建表的时候,因为字段发现了一些问题,所以这篇文字就来深入探讨下php中空字符串和0之间的关系,感兴趣的朋友们可以通过下面这篇文字来详细的看看,相信会对大家学习或只用php具有一定的参考借鉴价值。
    2016-10-10
  • PHP中使用OpenSSL生成证书及加密解密

    PHP中使用OpenSSL生成证书及加密解密

    这篇文章主要介绍了PHP中使用OpenSSL生成证书及加密解密,需要的朋友可以参考下
    2017-02-02
  • 使用PHPOffice/PHPWord实现读取Word内容

    使用PHPOffice/PHPWord实现读取Word内容

    这篇文章主要为大家详细介绍了如何使用PHPOffice/PHPWord实现读取Word内容的功能,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2023-07-07
  • php自动给文章加关键词链接的函数代码

    php自动给文章加关键词链接的函数代码

    自动给文章加关键词链接的php函数代码,需要的朋友可以参考下
    2012-11-11
  • 用header 发送cookie的php代码

    用header 发送cookie的php代码

    用header 发送cookie的php代码...
    2007-03-03
  • 分享php邮件管理器源码

    分享php邮件管理器源码

    这篇文章主要为大家分享了php邮件管理器源码,一个简单的PHP邮件管理器,有详细的注释以及开发文档,欢迎大家学习下载
    2016-01-01
  • 保存到桌面、设为桌面且带图标的PHP代码

    保存到桌面、设为桌面且带图标的PHP代码

    保存到桌面带图标的方法有很多,在本文将为大家介绍下使用php是如何做到的,需要的朋友可以参考下
    2013-11-11
  • PHP 之Section与Cookie使用总结

    PHP 之Section与Cookie使用总结

    Session 将信息保存在服务器上.服务器在接受到唯一的SESSION_ID后,根据这个ID获取相关数据,然后将信息传递到客户端(浏览器).Cookie 是将所有信息以文本的形式存在本地文件,并由客户端(浏览器)进行管理与维护
    2012-09-09
  • PHP实现简单数字分页效果

    PHP实现简单数字分页效果

    我们平时在开发中,经常需要用到分页,在项目中要用到分页。分页功能是经常使用的一个功能,下面我们就来简单分享个数字的分页效果
    2015-07-07

最新评论