Подтвердить что ты не робот

Используя preg_match для обнаружения персидских (фарси) символов в строке

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

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

$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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

fa only:

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

en, en-num и fa character:

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

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

Ответ 3

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

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

Ответ 4

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

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

включены числа и пробел?