2012-11-29 95 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