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

StackOverflow https://stackoverflow.com/questions/4621727

Вопрос

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

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

$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)))

Другие советы

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

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

Только Закон:

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

EN, EN-NUM и FA Charework:

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

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

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

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

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

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

Включены цифры и пространство?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top