一個簡單的電子郵件驗證腳本一直在我身上失敗。PHP的正則表達式
if(!preg_match('^[^@]{1,63} @ [^@]{1,255}$', $input)) {
return false;
}
它應該很簡單,確保一個'@'符號,正確的長度爲本地和域的地址。但有效的電子郵件仍未能通過此測試。在error_log中,我也不斷收到一條消息,'@'是一個未定義的變量。我想逃避它嗎?在他們面前放置反斜槓並沒有幫助。
在此先感謝。
*編輯:我想我應該指出,電子郵件驗證腳本還有很多,我只是沒有發佈,因爲這些部分工作正常。這顯然不是唯一的驗證,但它是唯一一個對我保持錯誤的人。
爲什麼有周圍的'@'空間? – rockerest
這對於'!「£$%^&*()@!」£$%^&*()'也會返回true。艱難時期。 – adlawson
空間只是爲了讓眼睛更容易。真正的版本是沒有的。可能不應該添加,雖然。 – Renzo