国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php中郵箱地址正則表達式實現與詳解

2024-05-04 23:15:05
字體:
來源:轉載
供稿:網友
首先附上代碼

復制代碼 代碼如下:


^[_.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!";
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 田阳县| 秦皇岛市| 清原| 房产| 深州市| 额尔古纳市| 平乐县| 景东| 杨浦区| 罗平县| 家居| 大同市| 沐川县| 榆社县| 开阳县| 革吉县| 米脂县| 手机| 平山县| 瓦房店市| 金堂县| 锡林郭勒盟| 福安市| 张家口市| 安康市| 漠河县| 堆龙德庆县| 北票市| 周至县| 综艺| 崇文区| 漯河市| 合川市| 顺平县| 湘潭县| 泸溪县| 平江县| 准格尔旗| 吉隆县| 托克托县| 日土县|