PHP - 检查 unicode 字符 - 不适用于换行符?

PHP - checking for unicode characters - doesn't work with newlines?

我正在尝试编写一个 PHP 脚本来进行一些表单验证。文本输入的要求之一是它必须至少包含一个 unicode 字符。我写了这个函数来检查这个。

function containsLetters($str)
{
    return preg_match('/\p{L&}+/', $str);
}

我为它编写的前几个测试用例似乎运行良好。但后来我尝试针对字符串“\n”对其进行测试,结果是错误的。相反,它似乎完全崩溃了。

我也试过了:

var $test = preg_match('/\p{L&}+/', "\n");
var_dump($test);

这也不 运行。

在第二次尝试中,您试图将调用分配给一个变量,不要 ...

var_dump(preg_match('/\p{L&}/', "\n")); // int(0)

此外,您可以只使用 \pL 并确保启用 u (unicode) 修饰符 ...

function containsLetters($str) {
    return (bool) preg_match('~\pL~u', $str);
}