搜尋
首頁php教程PHP源码php中邮箱地址正则表达式实现与详解_php技巧
php中邮箱地址正则表达式实现与详解_php技巧May 25, 2016 pm 05:08 PM
正規表示式郵件地址

本文章不但要讲述了关于正则达式而且还讲述了关于邮箱正则的构成用法详解,有需要了解的朋友可以参考一下,同时我们也提供了多种不同的邮箱验证实例

首先附上代码

 代码如下:

^[_.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 class="brush:php;toolbar:false">"; print_r($emailArr); echo "
"; ?>打印如下: 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(&#39;/^[_.0-9a-z-a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$/&#39;,$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!"; 
}
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
php怎么去除字符串中的所有大写字母php怎么去除字符串中的所有大写字母Sep 26, 2022 pm 07:59 PM

两种去除方法:1、利用preg_replace()执行正则表达式搜索所有大写字母并将其替换为空字符即可,语法“preg_replace('/[A-Z]/','',$str)”。2、利用preg_filter()执行正则表达式搜索所有大写字母并将其替换为空字符即可,语法“preg_filter('/[A-Z]/','',$str)”。

邮箱地址是什么怎么填 邮箱地址格式是什么邮箱地址是什么怎么填 邮箱地址格式是什么Feb 22, 2024 pm 04:28 PM

邮箱地址填写的格式主要是用户名+@+网站后辍。解析1邮箱地址填写的格式主要是用户名+@+网站后辍,比如zhangsan@qq.com。2邮箱地址是网络世界里的收信地址,目前国内应用比较广泛的邮箱主要有QQ邮箱、新浪邮箱、网易邮箱等。3在网络上,每个用户的电子邮箱地址都是独一无二的,这样也就确保了收发邮件的准确性和唯一性。补充:电子邮箱什么意思1电子邮箱指的是用智能电子技术手段带来信息交换的通信方式,是移动互联网运用最广泛的服务项目,利用互联网电子邮件系统客户能以十分便宜的价格迅速与全世界任意一个

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace("&nbsp;","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

邮箱地址是什么怎么填邮箱地址是什么怎么填Mar 12, 2024 pm 02:58 PM

1、电子邮件地址的格式是【用户名@域名】,其中用户名是收件人的账号,域名是收件人的电子邮件服务器的名称。2、例子【123456@qq.com】就是一个电子邮件地址,其中【123456】是用户名,【qq.com】是域名。3、再举个例子【888888@163.com】,其中【888888】是用户名,【163.com】是域名。

使用Go语言编写高性能的正则表达式匹配使用Go语言编写高性能的正则表达式匹配Jun 15, 2023 pm 10:56 PM

随着数据量的不断增大,正则表达式匹配成为了程序中常用的操作之一。而在Go语言中,由于其天然的并行ism,以及与底层系统的交互性和高效性,使得Go语言的正则表达式匹配极具优势。那么如何使用Go语言编写高性能的正则表达式匹配呢?一、了解正则表达式在使用正则表达式前,我们首先需要了解正则表达式,了解其基本语法规则以及常用的匹配字符,使我们能够在编写正则表达式时更加

php怎么利用正则排除字符串中的字符php怎么利用正则排除字符串中的字符Dec 15, 2022 pm 03:30 PM

两种方法:1、用preg_replace(),可执行正则表达式的搜索和替换,只需将字符串中匹配的字符替换为空字符即可,语法“preg_replace(正则, "", $str)”。2、用preg_match_all(),可搜索字符串中所有和正则表达式匹配的结果,会将每次的匹配结果放在一个数组$array中,语法“preg_match_all(正则,$str,$array);”。

如何在golang中使用正则表达式验证邮箱地址的域名如何在golang中使用正则表达式验证邮箱地址的域名Jun 24, 2023 am 08:12 AM

在golang中使用正则表达式验证邮箱地址的域名是很有必要的,因为邮箱地址在实际应用中是非常常见的,而且邮箱地址的规则也比较复杂。在很多情况下,我们需要验证用户输入的邮箱地址的域名是否符合规范,以保证数据的有效性和安全性。本文将介绍如何在golang中使用正则表达式验证邮箱地址的域名。首先,我们需要了解邮箱地址的基本规则。邮箱地址由“用户名”和“域名”两部分

如何用PHP正则表达式验证输入字符串是否为正确的邮箱地址如何用PHP正则表达式验证输入字符串是否为正确的邮箱地址Jun 24, 2023 pm 05:03 PM

随着互联网的发展,电子邮件已经成为人们日常生活不可或缺的一部分。在网站开发中,验证用户输入的电子邮件地址是必要且常见的操作。本文将介绍如何使用PHP正则表达式验证输入字符串是否为正确的邮箱地址。了解正则表达式正则表达式是一种用于匹配字符模式的工具。PHP中通过使用preg_match()函数实现对字符串的正则匹配。其语法如下:preg_match($patt

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具