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中任意乙個出現...