2016-06-20 30 views
0

preg_match()是一個可靠的函數,可以單獨使用它來驗證輸入數據嗎?只是爲了驗證(我不是在談論消毒和逃避)。對於用戶輸入的數據驗證還有其他替代方案嗎?

例如: 我想只允許來自用戶輸入的字母和數字。爲確保這一情況發生,我將使用preg_match("/^[a-zA-Z0-9]*$/",$_POST["input"])。 除了客戶端(JS)和filter_input()(PHP)驗證是否有任何其他方法來驗證數據?

感謝

編輯:我的意思非常可靠的方法(最好的),我知道身邊有其他的方法來驗證。

+3

是你的問題,如果有任何其他方式或更好的其他方式?更好,不是在我看來。其他方式,是的。您可以遍歷每個字符並使用is_numeric()或ctype_alpha()。但這並不是更好 – Andreas

+0

編輯完成後,我認爲進行驗證的「最佳」方式相當主觀。 –

+0

您的雷克斯將允許空以及'/^$ /' – ArtisticPhoenix

回答

2

您應該使用filter_inputfilter_var進行驗證。您可以使用預定義的範圍validation filters或使用filter callback指定您的自定義過濾器。

+1

有沒有過濾器來匹配字母和數字 –

+0

是的,有 - FILTER_VALIDATE_REGEXP –

+0

整潔,PHP複製它已經有(再次):-) –

相關問題