我在PHP中創建了一個表單,其中包含一個稱爲電子郵件的字段,用戶需要輸入他/她的電子郵件ID。爲了確保輸入的郵件ID在語法方面是真實的(例如,[email protected]
有效),我需要對其添加某種驗證。我發現情況很模糊,因爲我不明白如何檢查輸入的郵件ID是否包含@
符號等。請幫忙。謝謝。 :)使用PHP在表單中驗證電子郵件輸入
回答
最好的辦法是隻做:
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
...
}
,讓PHP處理繁重的工作適合你。否則,如果你想成爲完全正確,直接使用正則表達式你自己,你會堅持這個畸形:
(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
嚴格遵守RFC2822。
是的,這是要走的路!如果電子郵件缺少頂級域名(本地主機有效),那麼您可以另外使用'preg_match('/ \。[AZ] {2,4} $/i')檢查2-4個字符的域名, $電子郵件)'。 – martinstoeckli
您可以使用jquery插件驗證表單。
您可以使用正則表達式來驗證格式:
<?php
$email = "[email protected]"; // or perhaps $_POST['email'];
if(eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {
echo "Valid email address.";
}
else {
echo "Invalid email address.";
}
?>
也是一個非常沉悶的電子郵件正則表達式,失敗了許多有效的地址。不要複製和粘貼這個。 – mario
從我自己的代碼:
if(!preg_match("(^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$)i", $email))
echo "E-mail address invalid";
極少數的合法地址的可能失敗,例如任何@example.info
,以及任何使用不尋常字符的電子郵件地址,但大多數情況下,這很好地工作。
首先您需要定義有效的電子郵件地址。
有不同的方法來取決於這個驗證對你有多重要。
有些人使用crazy by-the-RFC regexps.
另一個極端,就是保存任何用戶輸入,後來嘗試發送確認郵件到該地址。沒有確認=錯誤的電子郵件。
你可能想的東西之間:確保有一個在中間的@
,例如:
$email_arr = explode('@', $email);
if (sizeof($email_arr) !== 2 || $email_arr[0] == '' || $email_arr[1] == '')
... // definitely not valid
UPD:馬克·B帶filter_var($email, FILTER_VALIDATE_EMAIL)
這可能是最好的方式把它釘。
- 1. 使用電子郵件鍵盤輸入表單但不驗證
- 2. PHP電子郵件表單驗證
- 3. PHP表單驗證和電子郵件
- 4. Php電子郵件表單驗證,驗證不起作用
- 5. PHP電子郵件表單驗證和寫入文件
- 6. 電子郵件地址輸入驗證
- 7. 如何驗證電子郵件輸入?
- 8. 驗證電子郵件輸入
- 9. 使用filter_var驗證電子郵件PHP
- 10. 使用PHP的電子郵件驗證
- 11. 使用PHP驗證電子郵件
- 12. 電子郵件驗證PHP
- 13. PHP - 電子郵件驗證
- 14. 電子郵件驗證php
- 15. PHP電子郵件驗證
- 16. PHP電子郵件驗證
- 17. 電子郵件輸入表單驗證炫耀的窗口
- 18. 如何使用PHP驗證表單併發送電子郵件
- 19. 在php中的電子郵件驗證?
- 20. 在PHP 5.2中驗證電子郵件?
- 21. 在PHP中驗證電子郵件?
- 22. 春季電子郵件表單驗證
- 23. 電子郵件的HTML5表單驗證
- 24. 註冊表單(驗證電子郵件)
- 25. 使用...正則表達式驗證PHP中的電子郵件?
- 26. 在表單中發送電子郵件給用戶輸入電子郵件。 ASP.NET
- 27. 從驗證電子郵件中的表單顯示用戶輸入
- 28. 驗證Adobe PDF表單中的多個電子郵件驗證
- 29. 電子郵件驗證未在角2表單驗證
- 30. PHP郵件表單不會向電子郵件發送輸入
可能的重複http://stackoverflow.com/questions/201323/what-is-the-best-regular-expression-for-validating-email-addresses。 –