2010-10-04 69 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