3

我遇到了一个关于 preg_match() 和反斜杠的奇怪问题。我正在尝试检查用户名中是否存在非法字符。它几乎适用于所有东西,但显然像“BobDobbs”这样的用户名正在通过。

我已经设法使用 strpos() 轻松解决了这个问题,但我仍然不确定我的语法有什么问题。运行 PHP 5.3.10。

$displayname = 'BobDobbs\\\\';
if(preg_match("/[^A-z0-9_.-]/", $displayname)) {
    $errors[] = 'Name contains illegal characters';
}
4

1 回答 1

8

范围A-z包含\字符。我想你正在寻找a-zA-Z

A是 65,z是 122,\是 92。)

于 2013-01-17T03:18:48.440 回答