PHP E mail郵箱正則

2021-08-23 11:56:56 字數 1563 閱讀 7410

1.<?php

2.  if(ereg(「/^[a-z]([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]([\.][a-z])?$/i;」,$email))

4.  else

7.?>

國際網域名稱格式如下:

網域名稱由各國文字的特定字符集、英文本母、數字及「-」(即連字元或減號)任意組合而成,但開頭及結尾均不能含有「-」,「-」不能連續出現。網域名稱中字母不分大小寫。網域名稱最長可達60個位元組(包括字尾.com、.net、.org等)。

/^[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]([\.][a-z])?$/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個英文本母,一般為com或者net等.

([\.][a-z])?匹配0個或者1個[\.][a-z](比如.cn等)我不知道一般.com.cn最後部份是不是都是兩位的,如果不是請修改為

<?php

functiongetemail($str)([\.][a-z])?/i";

preg_match_all($pattern,$str,$emailarr);

return

$emailarr[0];

}$emailstr="[email protected]俺不是公尺vi地方就開iid郵件列表:[email protected][email protected];.;;,[email protected],[email protected]";

$emailarr=getemail($emailstr);

echo

"

"; 

print_r($emailarr);

echo

"

";

?>

列印如下:

array

([0]=>[email protected]

[1]=>[email protected]

[2]=>[email protected]

[3]=>[email protected]

[4]=>[email protected]

)3.比較:第2裡的正則裡沒有了第1的^和$;

php email郵箱正則驗證

國際網域名稱格式如下 網域名稱由各國文字的特定字符集 英文本母 數字及 即連字元或減號 任意組合而成,但開頭及結尾均不能含有 不能連續出現 網域名稱中字母不分大小寫。網域名稱最長可達60個位元組 包括字尾.com net org等 a z a z0 9 a z0 9 a z0 9 a z0 9 a ...

php email郵箱正則驗證

國際網域名稱格式如下 網域名稱由各國文字的特定字符集 英文本母 數字及 即連字元或減號 任意組合而成,但開頭及結尾均不能含有 不能連續出現 網域名稱中字母不分大小寫。網域名稱最長可達60個位元組 包括字尾.com net org等 a z a z0 9 a z0 9 a z0 9 a z0 9 a ...

go 正則匹配郵箱

w 匹配字母數字及下劃線 var reemail 1 9 d qq.com 郵箱 reemail w w com 郵箱 reemail w w a z a z 郵箱 w 表示字母字元或者.其中乙個出現 1到多次 a z 表示a z任意其中乙個字元 出現2到3次 a z 表示分組 a到z中任意乙個出現...