用PHP校正EMAIL地址的正確方法(1)_PHP教程

來源:互聯網
上載者:User
由John Klensin編寫的互連網任務工程組(IETF)文檔RFC 3696 “應用程式技術檢查和命名轉換”給出了多個真實有效EMAIL地址,但很不幸的是這些地址卻被大多數PHP校正程式給拒絕了,地址Abc@def@example.com,customer/department=shipping@example.com 和!def!xyz%abc@example.com都是有效,下面是在有關文獻中給出的一個非常流行Regex,但它拒絕了前面給出的所有EMAIL地址:

^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$

這個Regex只允許底線(_)和連字號(-),數字和大小寫字母。即使在此之前先對字母做了大小寫轉換,也會拒絕那些包含斜線(/),等號(=),驚歎號(!)和百分比符號(%)的地址。這個運算式也要求最進階的域組件至少要有2個或3個字元,因此也會拒絕有效域,如.museum。

另一個受人喜歡的Regex是:

^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$

這個Regex也會拒絕前面段落給出的有效樣本地址,它優雅地解決了大寫字母問題,並且當最進階網域名稱只有2個或3個字元也不會報錯了,但它又允許無效的網域名稱,如example..com。

清單1顯示了一個來自PHP Dev Shed(

http://www.bkjia.com/PHPjc/446749.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/446749.htmlTechArticle由John Klensin編寫的互連網任務工程組(IETF)文檔RFC 3696 “應用程式技術檢查和命名轉換”給出了多個真實有效EMAIL地址,但很不幸的是這...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.