【发布时间】:2012-04-23 13:44:58
【问题描述】:
可能重复:
php - regular expression - PCRE does not support \L, \l, \N, \P,
我有一个功能
public function valid_city_state($data)
{
$data = trim($data);
if(!$data)
{
return TRUE;
}
$valid = preg_match("/^[a-zA-Z\u0080-\u024F\s\/\-\)\(\`\.\"\']+$/",trim($data));
if(!$valid)
{
$this->form_validation->set_message('valid_city_state', 'Please enter a valid %s.');
return FALSE;
}
else
{
return TRUE;
}
}
它有正则表达式
$valid = preg_match("/^[a-zA-Z\u0080-\u024F\s\/\-\)\(\`\.\"\']+$/",trim($data));
执行时出现如下错误
A PHP Error was encountered
Severity: Warning
Message: preg_match() [function.preg-match]: Compilation failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 9
Filename: home/auth.php
Line Number: 1632
看了一些例子,但没有得到需要的东西
php - regular expression - PCRE does not support \L, \l, \N, \P,
http://www.sitepoint.com/forums/showthread.php?748713-Preg-match-with-php-PCRE-error
请帮忙。在此先感谢。
更新
这个正则表达式在 javascript 中运行良好
【问题讨论】:
-
您是否尝试过第一个链接中的“PCRE 不支持 \uXXXX 语法。请改用 \x{XXXX}。请参阅 [regular-expressions.info/unicode.html#codepoint]”?
-
是的,我使用了 \u{0080}-\u{024F} 安装的 \u0080-\u024F 但不起作用
-
使用 \x{} 而不是 \u{} ... \u#### 在 javascript 而不是 pcre 中受支持,这就是它在那里工作的原因,使用 \ x{####}
-
@ craniumonempty 是的。谢谢
-
$str = "عربية"; if(preg_match("/[^a-zA-Z0-9_ \,\x{0600}-\x{06FF}]+/u", $str))echo "无效";否则回显“有效”;
标签: php validation codeigniter