2010-10-04 79 views
0
$page = $_GET['page']; 
if(isset($page)) 
if(!preg_match('/[\w\d_]+/i', $page)) die("Error"); 

我想允许alphanum和下划线,的preg_match问题

上面的代码工作,但让说,我设置123 ......,这个工程太。 preg_match不会在入口后面验证吗?

回答

2

只要一个字母出现的$page一个子正则表达式匹配。由于123...包含子字符串123它会通过你的正则表达式。

使用

/^\w+$/ 

整个字符串相匹配。 (\w已经意味着[a-zA-Z0-9_]让你\d_i修改是多余的。)

0

您需要使用锚为:

/^\w+$/ 

\w已经\d_

+0

和'\ w'确实已经包含大写和小写变体。 – Gumbo 2010-10-04 08:09:00