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

來源:互聯網
上載者:User

   相信好好學過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。

  而不太好理解的就是前面的這段Regex了:^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$

  在這段Regex中,“+”表示前面的字串連續出現一個或多個;“^”表示下一個字串必須出現在開頭,“$”表示前一個字串必須出現在結尾;

  “.”也就是“.”,這裡“”是轉義符;“{2,3}”表示前面的字串可以連續出現2-3次。“()”表示包含的內容必須同時出現在目標對象中。“[_.0-9a-z-]”表示包含在“_”、“.”、“-”、從a到z範圍內的字母、從0到9範圍內的數字中的任一字元;

  這樣一來,這個Regex可以這樣翻譯:

  “下面的字元必須在開頭(^)”、“該字元必須包含在“_”、“.”、“-”、從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}$)”

  很繁雜是吧,對了,正因為這樣,人們才使用Regex。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.