en utilisant preg_match pour détecter persan (farsi) caractères dans la chaîne
-
30-09-2019 - |
Question
Je suis en train de données sous forme de validation de côté serveur. mon intérêt est que l'utilisateur vous suffit de remplir le formulaire en caractères persans.
Je suis en utilisant ce code:
$name=trim($_POST['name']);
$name= mysql_real_escape_string($name);
if (preg_match('/^[\u0600-\u06FF]+$/',str_replace("\\\\","",$name))){$err.= "Please use Persian characters!";}
mais il ne fonctionne pas!
ici est un avertissement:
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
Que puis-je faire?
La solution
Ce travail 'devrait' ...
** a ajouté un ^ après l'ouverture [pour exclure les caractères arabes / farsi du match ...
if (preg_match('/^[^\x{600}-\x{6FF}]+$/u', str_replace("\\\\","",$name)))
Autres conseils
پژگچ à 600 - gamme 6FF
fa seulement:
preg_match('/^[پچجحخهعغفقثصضشسیبلاتنمکگوئدذرزطظژؤإأءًٌٍَُِّ\s]+$/u', $input);
en caractère en-num et fa:
preg_match('/^([a-zA-Z0-9 پچجحخهعغفقثصضشسیبلاتنمکگوئدذرزطظژؤإأءًٌٍَُِّ])+$/u', $input);
vous pouvez définir des numéros fa-arabe ou ي ك
Vous devez utiliser ceci:
if(preg_match("/^[آ ا ب پ ت ث ج چ ح خ د ذ ر ز ژ س ش ص ض ط ظ ع غ ف ق ک گ ل م ن و ه ی]/", $_POST['name']))
regex:
if(preg_match("/^[آ ا ب پ ت ث ج چ ح خ د ذ ر ز ژ س ش ص ض ط ظ ع غ ف ق ک گ ل م ن و ه ی]/", $_POST['name']))
numéros inclus et l'espace?
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow