PHP - preg_match()允许意外

时间:2012-09-09 17:21:34

标签: php

我正在尝试使用preg_match()来仅允许来自a-z的字符。我正在使用这个字符串:

if (! preg_match('/[^a-z]/i', $name)) {
    echo 'Invalid characters in your name..';
    return false;
}

但由于某种原因,它允许所有角色。我现在已经很长时间都出演了这些专栏,我不明白为什么它不起作用。

1 个答案:

答案 0 :(得分:4)

你的模式只搜索一个字符,这就是为什么它每次都会返回true,如果不是字符串只包含无效字符。

将此模式更改为此,您应该启动并运行

^[a-z]+$

如果你想允许大写字母

^[A-za-z]+$

也许是数字

^[A-za-z0-9]+$

修改 如果要检查<>的字符串 你可以使用

(<|>)

但它会返回true