php - 使用 preg_match 检测字符串中的波斯语 (farsi) 字符

标签 php unicode preg-match persian

我正在尝试从服务器端验证表单数据。 我感兴趣的是用户只需用波斯字符填写表格。

我正在使用这段代码:

$name=trim($_POST['name']);
$name= mysql_real_escape_string($name);
if (preg_match('/^[\u0600-\u06FF]+$/',str_replace("\\\\","",$name))){$err.= "Please use Persian characters!";}

但它不起作用!

这是一个警告:

Warning: preg_match() [function.preg-match]: Compilation failed: PCRE does not support \L, \l, \N, \U, or \u at offset 3 in C:\xampp\htdocs\site\form.php on line 38

我能做什么?

最佳答案

这个“应该”工作...

** 在开头 [ 后添加一个 ^ 以从匹配中排除阿拉伯语/法西语字符...

if (preg_match('/^[^\x{600}-\x{6FF}]+$/u', str_replace("\\\\","",$name)))

关于php - 使用 preg_match 检测字符串中的波斯语 (farsi) 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4621727/

相关文章:

string - 如何在 Python 2 和 Python 3 中处理 subprocess.Popen 输出

DATA 和 ARGV 文件句柄上的 Perl UTF-8 编码

Python,如何打印日文、韩文、中文字符串

php - 更新 ereg 调用以使用 preg_match 时出错

javascript - preg_match 用于验证自定义模式

php - 使用 PHP MYSQLi 如何只获得债务人和债权人使用 action_type DR 和 CR 进行管理

PHP不会显示新行

php - 用户认证 PHP/SQL

php - 在 Wordpress/Timber 中获取当前类别 slug

正则表达式匹配任一关键字最后一次出现的所有内容