使用preg_match()函数的阿拉伯字符

时间:2017-01-31 12:54:04

标签: function character preg-match match arabic

我正在尝试使用preg_match()来检查阿拉伯语和英语字符,

我使用了这段代码:

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

但仍然没有用。

编辑:不起作用的代码:

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 个答案:

答案 0 :(得分: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>");
}