preg_match问题

时间:2010-10-04 08:02:50

标签: php regex

$page = $_GET['page'];
if(isset($page))
if(!preg_match('/[\w\d_]+/i', $page)) die("Error");

我想允许使用字母数字和下划线,

上面的代码可以工作,但是假设我设置了123 ...,这也有效。 preg_match是否会在条目后验证?

2 个答案:

答案 0 :(得分:2)

只要字母数字显示为$page的子字符串,正则表达式就会匹配。由于123...包含子字符串123,因此它将通过您的正则表达式。

使用

/^\w+$/

匹配整个字符串。 (\w已经意味着[a-zA-Z0-9_],因此您的\d_i修饰符是多余的。)

答案 1 :(得分:0)

您需要使用锚点:

/^\w+$/

\w已有\d_