如何在輸入者輸入一個電子郵件地址之後,確定其輸入的是正確合法的電子郵件。
在 html5 的年代,有一個簡單的方法就是使用 <input type=”email” /> 這樣簡潔有力的做法交給瀏覽器去驗證。
不過有一個問題,就是曾是萬惡的 IE瀏覽器,在過去的版本,目前還不少人使用的 IE8 當中並不支援這樣的做法。所以只好改由 javascript 來驗證。
不過回到了後端都還要再行驗證一次,因為使用者輸入的東西是不可信任的。(這是安全性的原則,而非不信任各位訪客。)
不過,用什麼手段或是如何驗證不是這邊文章的重點。
重點是何謂正確的?
!def!xyz%abc@example.com
“test”blah”@example.com
+1~1+@example.com
你覺得以上三個是合法的電子郵件地址嗎??
根據 RFC 中有關於電子郵件地址格式的規範中,你上三個都是合法的電子郵件地址。
千萬別懷疑,這是千真萬確的事實。
在 IE 9.0.9 、 Firefox 15.0.1 、 Chrome 21.0.1180.89 當中,三個都可以在 <input type=”email” /> 欄位中正確的輸入並送出。
不過在 WordPress 當中,第二個地址 “test”blah”@iana.org 並不允許,因為 WP 的驗證程式當中並不允許使用 ” 這一個符號的使用。
以上報告!