2011-01-07 15 views
10

Ich versuche, Formulardaten von Server-Seite zu überprüfen. mein Interesse ist, dass der Benutzer nur das Formular mit persischen Zeichen füllen.Verwenden von Preg_match zum Erkennen persischer (Farsi) Zeichen in Zeichenfolge

Ich verwende diesen Code:

$name=trim($_POST['name']); 
$name= mysql_real_escape_string($name); 
if (preg_match('/^[\u0600-\u06FF]+$/',str_replace("\\\\","",$name))){$err.= "Please use Persian characters!";} 

aber es funktioniert nicht!

hier ist eine Warnung:

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 

Was kann ich tun?

Antwort

9

Diese 'sollte' Arbeit ...

** hinzugefügt a^nach der Eröffnung [arabisch/farsi Charaktere aus dem Spiel auszuschließen ...

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

Sie diese verwenden sollten:

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

diese regex:

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

enthalten Zahlen und Leerzeichen?

4

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

پژگچ in 600 - 6FF Bereich

fa nur:

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

en, en-num und fa Charakter:

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

Sie FA- einstellen Zahlen oder Arabisch ي ك

Verwandte Themen