Использование preg_match для обнаружения символов персидского (Farsi) в строке
-
30-09-2019 - |
Вопрос
Я пытаюсь проверить данные формы с сервера. Мой интерес заключается в том, что пользователь просто заполняет форму персидских персонажей.
Я использую этот код:
$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']))
Включены цифры и пространство?
Не связан с StackOverflow