2011-01-07 9 views
10

Próbuję sprawdzić dane formularza od strony serwera. Moim zainteresowaniem jest to, że użytkownik po prostu wypełnia formularz znakami perskimi.przy użyciu preg_match do wykrywania znaków perskich (farsi) w ciągu znaków

Używam tego kodu:

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

ale to nie działa!

o to ostrzeżenie:

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 

Co mogę zrobić?

Odpowiedz

9

'powinien' Ta praca ...

** dodano^po otwarciu [wykluczyć Arabic/znaki farsi z meczu ...

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

Należy użyć tego:

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

tego regex:

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

zawiera numery i przestrzeń?

4

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

پژگچ w 600 - zakres 6FF

fa tylko:

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

pl, en-fa num i charakter:

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

można ustawić FA numery lub arabski ي ك

Powiązane problemy