использование preg_match для обнаружения персидских (фарси) символов в строке - PullRequest
11 голосов
/ 07 января 2011

Я пытаюсь проверить данные формы со стороны сервера. Меня интересует, что пользователь просто заполняет форму персидскими символами.

Я использую этот код:

$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

Что я могу сделать?

Ответы [ 4 ]

9 голосов
/ 07 января 2011

Это 'должно' работать ...

** добавлено ^ после открытия [, чтобы исключить символы арабского языка / фарси из матча ...

if (preg_match('/^[^\x{600}-\x{6FF}]+$/u', str_replace("\\\\","",$name)))
5 голосов
/ 31 января 2015

http://utf8 -chartable.de / unicode-utf8-table.pl? Начать = 1536 & число = 1024 & utf8 = 0x & addlinks = 1 & htmlent = 1

پژگچ в диапазоне 600 - 6FF

только fa:

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

ru, en-num и fa:

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

Вы можете установить fa-числа или арабский

4 голосов
/ 10 августа 2013

Вы должны использовать это:

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

это регулярное выражение:

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

включены цифры и пробел?

...