程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 一個PHP中常用email校驗語句的解釋

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

編輯:關於PHP編程

       相信好好學過PHP的人都應該知道下面這段用於eamil校驗的語句,但是真正能看懂的就不多了:

      以下為引用的內容:

      if (eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}[JF:Content]quot;,$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}$)”

      很繁雜是吧,對了,正因為這樣,人們才使用正則表達式。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved