2012-11-29 94 views
1

我有一個用戶名文本框。它只能接受3到10個字符,它應該只接受(0,9)和(A,Z)值或者可能( - 和_), 不再更多
限制用戶輸入由php

如果用戶輸入一個值,如$%^#它應該給出一個錯誤
我想用PHP來做到這一點,而不是Jquery。誰能幫我這個?

我知道我可以使用

<input name="1" type="text" value="1" maxlength="10" /> 

但它不給一個錯誤給用戶,只是過濾輸入值。

謝謝。

+0

你試過到目前爲止什麼PHP的解決方案? – Oldskool

+0

preg_match但我不知道這個代碼的規則 –

回答

2

正則表達式可以工作

if (preg_match("%^[A-Za-z0-9-_]{3,10}$%", $_POST["1"])) { 
    // OK 
} else { 
    // ERROR 
} 
+0

魔獸世界很容易然後
謝謝 –

+0

正則表達式是你的朋友:),我只是更深入到自己的這一部分,它使生活變得更加容易。 – Kodemon

+2

/^ [\ w - ] {3,10} $ /要更簡潔,請記住這些不會允許空格中的值,以允許空格以及使用/^[\ w - ] {3,10 } $/ –

0

將值提交給PHP腳本時,可以通過$_REQUEST全局變量查看該值。在這種情況下,您可以參考$_REQUEST["1"]。爲確保它包含的值具有一定的大小,請使用strlen()函數。爲了確保該值只包含某些字符,你可以使用preg_match_all()和適當的正則表達式如下所示:

[A-Za-z0-9] 
+0

或者用SnapGravy的gravylicious正則表達式做這一切。 – ScoPi