باستخدام preg_match للكشف عن الأحرف الفارسية (الفارسية) في السلسلة

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&addlinks=1&htmlent=1

پژگچ في نطاق 600 - 6ff

FA فقط:

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

en ، en-num و fa character:

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

يمكنك ضبط أرقام FA أو العربية

يجب عليك استخدام هذا:

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

هذا regex:

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

وشملت الأرقام والمساحة؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top