2011-01-07 11 views
10

Estoy tratando de validar los datos del formulario desde el lado del servidor. mi interés es que el usuario simplemente complete el formulario por caracteres persas.usando preg_match para detectar caracteres persas (farsi) en la cadena

estoy utilizando este código:

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

pero no funciona!

aquí es una advertencia:

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 

¿Qué puedo hacer yo?

Respuesta

9

Este 'debería' trabajo ...

** añadió un^después de la apertura [excluir caracteres arábigos/Farsi del partido ...

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

para utilizar este:

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

esta expresión regular:

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

¿números incluidos y espacio?

4

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

پژگچ en 600 - gama 6FF

fa solamente:

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

es, en-num y carácter FA:

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

puede establecer fa- números o árabe ي ك

Cuestiones relacionadas