PHP E-mail郵箱正則
php 正則匹配郵箱代碼,分析的也比較詳細,希望對這方面有問題的朋友,可以看下CODE:1. < ?php2. 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)){3. echo “Your email address is correct!”;}4. else{5. echo “Please try again!”;6. }7. ?>
國際域名格式如下:域名由各國文字的特定字符集、英文字母、數字及“-”(即連字符或減號)任意組合而成, 但開頭及結尾均不能含有“-”,“-”不能連續出現 。 域名中字母不分大小寫。域名最長可達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:<?phpfunction 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 = '[email protected]俺不是米vi地方就開iid郵件列表:[email protected]和[email protected].;;,[email protected],[email protected]';$emailArr = getEmail($emailstr);echo '<pre>';print_r($emailArr);echo '</pre>';?>打印如下:Array([0] =>[email protected][1] =>[email protected][2] =>[email protected][3] =>[email protected][4] =>[email protected])3.比較:第2里的正則里沒有了第1的^和$;
