我正在尝试为某些表单验证编写PHP脚本。文本输入的要求之一是它必须包含至少一个unicode字符。我写了这个函数来检查这个。
function containsLetters($str)
{
return preg_match('/\p{L&}+/', $str);
}
我为它编写的前几个测试用例似乎工作得很好。但后来我尝试用字符串“\ n”来测试它,期待一个错误的结果。相反,它似乎完全崩溃。
我也尝试了这个:
var $test = preg_match('/\p{L&}+/', "\n");
var_dump($test);
也不会运行。
答案 0 :(得分:2)
在第二次尝试中,您尝试将调用分配给变量,不要 ...
var_dump(preg_match('/\p{L&}/', "\n")); // int(0)
此外,您只需使用\pL
,并确保启用u
(unicode)修饰符...
function containsLetters($str) {
return (bool) preg_match('~\pL~u', $str);
}