为什么PHP为当前代码返回0?我只想验证用户名,并允许传递所有可用的字母符号(包括所有像śś?
$var = 'cz -ęsc';
var_dump(preg_match('/^[pL -]{1,35}$/', $var)); // int(0)
您需要通过设置u
标志为正则表达式启用Unicode,即:
$var = 'cz -ęsc';
var_dump(preg_match('/^[pL -]{1,35}$/u', $var)); // int(1)
有关详细信息,请参阅文档中的u (PCRE_UTF8)
部分:http://php.net/manual/en/reference.pcre.pattern.modifiers.php