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

问题描述 投票:0回答:4

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

我正在使用此代码:

$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

我能做什么?

php unicode preg-match persian
4个回答
15
投票

这个“应该”有效...

** 在开头 [ 后添加了 ^ 以从匹配中排除阿拉伯语/波斯语字符...

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

11
投票

http://utf8-chartable.de/unicode-utf8-table.pl?start=1536&number=1024&utf8=0x&addlinks=1&htmlent=1

600 - 6FF 范围内

仅限

fa:

preg_match('/^[پچجحخهعغفقثصضشسیبلاتنمکگوئدذرزطظژؤإأءًٌٍَُِّ\s]+$/u', $input);

en 、 en-num 和 fa 字符:

 preg_match('/^([a-zA-Z0-9 پچجحخهعغفقثصضشسیبلاتنمکگوئدذرزطظژؤإأءًٌٍَُِّ])+$/u', $input);

您可以设置 fa 号码或阿拉伯语 Ÿ ك


5
投票

你应该使用这个:

if(preg_match("/^[آ ا ب پ ت ث ج چ ح خ د ذ ر ز ژ س ش ص ض ط ظ ع غ ف ق ک گ ل م ن و ه ی]/", $_POST['name']))

0
投票

我有这样的声明:

if (!preg_match('/^[a-zA-Z0-9]+$/', $_POST['fname'])) {
exit('Username must contain only letters and numbers!');

我如何用以下语句转换或替换它:

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

}

我只想在这个字段中获得波斯语字符。

谢谢你

© www.soinside.com 2019 - 2024. All rights reserved.