2017-01-31 6 views
1

Я пытаюсь использовать preg_match(), чтобы проверить, арабский и английский символы толькоарабские символы с помощью preg_match() функция

я использовал этот код:

preg_match("/^[a-zA-Zأ-ي]*$/",$name) 

, но до сих пор, она не работает.

EDIT: код, который не работает:

if($name == '' || $email =='') { 
    echo("<div class=\"error\">fill all fields</div>"); 
} 
else if (!preg_match("/^[a-zA-Zأ-ي\s]*$/",$name)) { 
    echo("<div class=\"error\">Only letters and white space allowed</div>"); 
} 
else if (strlen($name) < 6) { 
    echo("<div class=\"error\">NONONONO les than 6</div>"); 
} 
else if(!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
    echo("<div class=\"error\">WORNG EMAIL</div>"); 
} else {} 
+1

Используйте 'preg_match ("/^[A-Za-Z أ-ي] * $/у", $ имя)' –

+0

Да дорогой, я использовал этот код, а также. Однако я столкнулся с проблемой, когда я хотел проверить длину строки не менее 6 символов, используя функцию strlen, после применения функции preg_match() она не работает хорошо. – ALBADI

+1

Используйте ['mb_strlen'] (http://php.net/manual/en/function.mb-strlen.php). –

ответ

1

Вы должны использовать модификатор /u с preg_match, чтобы убедиться, что шаблон и строка, рассматриваются как строки Unicode и strlen должны быть заменены mb_strlen на правильно отсчитывать символы Unicode:

else if (!preg_match("/^[a-zA-Zأ-ي\s]*$/u",$name)) { 
    echo("<div class=\"error\">Only letters and white space allowed</div>"); 
} 
else if (mb_strlen($name) < 6) { 
    echo("<div class=\"error\">NONONONO les than 6</div>"); 
} 
+0

Спасибо, что работа для меня – destinydz

Смежные вопросы