phpunicodepreg-matchpersian

using preg_match to detect persian (farsi) characters in string


I am trying to validate form data from server-side. my interest is that the user just fill the form by Persian characters.

I am using this code:

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

but it is not working!

here is a warning:

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

What can I do?


Solution

  • This 'should' work...

    ** added a ^ after the opening [ to exclude arabic/farsi characters from the match...

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