2011-01-07 7 views
10

Sto tentando di convalidare i dati del modulo dal lato server. il mio interesse è che l'utente riempia il modulo solo con caratteri persiani.utilizzando preg_match per rilevare i caratteri persiani (farsi) nella stringa

Sto usando questo codice:

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

ma non funziona!

ecco un avvertimento:

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 

Cosa posso fare?

risposta

9

Cio 'dovrebbe' il lavoro ...

** aggiunto un^dopo l'apertura [escludere caratteri arabi/Farsi dal match ...

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

si dovrebbe usare questo:

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

questa espressione regolare:

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

inclusi numeri e spazio?