1

我正在尝试使用 preg_match() 只允许来自 az 的字符。我正在使用这个字符串:

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

但由于某种原因,它允许所有字符。我已经在这些台词上出演了很长时间,但我不明白为什么它不起作用。

4

1 回答 1

4

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

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

^[a-z]+$

如果你也想允许大写字母

^[A-za-z]+$

也许还有数字

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

编辑: 如果你想检查一个字符串,<> 你可以使用

(<|>)

但它会返回 true

于 2012-09-09T17:33:02.417 回答