| 導購 | 订阅 | 在线投稿
分享
 
 
 

一個PHP中常用email校驗語句的解釋

2008-12-22 08:10:41  編輯來源:互聯網  简体版  手機版  評論  字體: ||
 
  相信好好學過PHP的人都應該知道下面這段用于eamil校驗的語句,但是真正能看懂的就不多了:
  <?php
  if (eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$",$email)) {
  echo "您的 E-Mail 通過初步檢查";
  }
  ?>
  在這句話裏,首先是應用了一個eregi函數,這個函數還算好理解。隨便找本書,就能給你一段解釋:
  語法: int ereg(string pattern, string string, array [regs]);
  返回值: 整數/數組
  本函數以 pattern 的規則來解析比對字符串 string。
  比對結果返回的值放在數組參數 regs 之中,regs[0] 內容就是原字符串 string、regs[1] 爲第一個合乎規則的字符串、regs[2] 就是第二個合乎規則的字符串,余類推。若省略參數 regs,則只是單純地比對,找到則返回值爲 true。
  而不太好理解的就是前面的這段正則表達式了:^[_.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}$)」
  很繁雜是吧,對了,正因爲這樣,人們才使用正則表達式。
 
相信好好學過PHP的人都應該知道下面這段用于eamil校驗的語句,但是真正能看懂的就不多了: <?php if (eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$",$email)) { echo "您的 E-Mail 通過初步檢查"; } ?> 在這句話裏,首先是應用了一個eregi函數,這個函數還算好理解。隨便找本書,就能給你一段解釋: 語法: int ereg(string pattern, string string, array [regs]); 返回值: 整數/數組 本函數以 pattern 的規則來解析比對字符串 string。 比對結果返回的值放在數組參數 regs 之中,regs[0] 內容就是原字符串 string、regs[1] 爲第一個合乎規則的字符串、regs[2] 就是第二個合乎規則的字符串,余類推。若省略參數 regs,則只是單純地比對,找到則返回值爲 true。 而不太好理解的就是前面的這段正則表達式了:^[_.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}$)」 很繁雜是吧,對了,正因爲這樣,人們才使用正則表達式。
󰈣󰈤
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
王朝網路微信公眾號
微信掃碼關註本站公眾號 wangchaonetcn
 
  免責聲明:本文僅代表作者個人觀點,與王朝網絡無關。王朝網絡登載此文出於傳遞更多信息之目的,並不意味著贊同其觀點或證實其描述,其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,並請自行核實相關內容。
 
© 2005- 王朝網路 版權所有