|
1.驗證email:
1.
- <?php
- 2. 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}(比如.com 我不知道一般.com.tw部份是不是都是兩位的,如果不是請修改{2}為{起始字數,結束字數}
複製代碼
完美E-Mail正則表達式,附詳細講解,請大家幫忙測試一下!
2.抽取字符串中的email:
- <?php
- function getEmail($str) {
- $pattern="/[a-z0-9]([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?/i";//為了適合qq的數字郵箱,正則開頭作了修改
- preg_match_all($pattern,$str,$emailArr);
- return
- $emailArr[0];
- }
- $emailstr="9999@tshopping.com.tw俺不是米vi地方就開iid郵件列表:fuyongjie@netyea.com,hh@qq.com;.;;,fuyongjie.100@yahoo.com,fu-1999@google.com";
- mailArr= getEmail($emailstr);
- echo "<pre>";
- print_r($emailArr);
- echo "</pre>";
- ?>
複製代碼
打印如下:
- Array
- (
- [0] =>9999@tshopping.com.tw
- [1] => fuyongjie@netyea.com
- [2] => hh@pchome
- [3] => fuyongjie.100@yahoo.com
- [4] => fu-1999@google.com
- )
複製代碼
3.比較:第2里的正則裡沒有了第1的^和$;
|
|