我想驗證通過PHP中的POST方法正在處理的表單。傳遞的一些示例值是姓名,年齡,性別,性格類型等。無法找出這麼簡單的東西的正則表達式
爲了確定給出的用戶數據是否正確,我使用正則表達式。
例如,這裏有一些我的工作.. 名稱的那些的(只要它不是空白,它的罰款。
if (strlen($name) == 0)
對我來說這一個工作是工作另外一個是性格類型,必須是榮格個性測試類型(如ISTP,ENTP,INFP等)。我的代碼是: if (!preg_match("/[IE]{1}[NS]{1}[FT]{1}[JP]{1}/", $per))
其中$ per是用戶提交的Jung個性類型。工作得很好
我遇到困難的是年齡,它必須是0-99,所以有1或2位數。就像它應該是如此簡單,但無論出於何種原因,它都不起作用。這裏的正則表達式的我曾嘗試:
/\d{1,2}/
/[0-9]{1,2}/
/(\d|\d\d)/
/([0-9]|[0-9][0-9])/
我不明白,爲什麼沒有這些會的工作,他們四個好像它將完全符合標準。也許我不理解如何正確使用正則表達式,但是我花了幾個小時仔細閱讀示例,所以我覺得它應該是正確的。
任何幫助將不勝感激,謝謝:)
編輯:如果這有助於在所有,傳遞價值「ABCDEFG」或「AB」作爲$年齡值出來作爲一個錯誤(這是正確的)。但是,傳遞「100」,「333」或「99999」的值時,會出現匹配(這是錯誤的,或者它不是我想要的)。希望這有助於解釋更多〜
第一個測試根本不是正則表達式。 – 2013-03-19 21:41:11
他們看起來對我有效,你怎麼知道他們不工作?發佈使用它們的代碼以及'var_dump($ the_input_string_you_are_trying_to_match);' – nickb 2013-03-19 21:41:33
您正在使用正則表達式。對於第一種情況,請創建一個允許值的數組,並查看它是否在該位置。對於第二種情況,將其轉換爲數字並檢查它是否在邊界內。 – 2013-03-19 21:41:36