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);
}
我正在尝试编写一个 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);
}