当我发送表格并检查阿拉伯语,英语和数字字符时,下面的代码不起作用:
<?
$username = $_POST["alalala"];
if ($username){
if (!preg_match("/^[a-zA-Z0-9ا-ي ]+$/i", $username)){
echo "error";
}else{
echo "ok";
}
}
?>
<form method="post">
<input type="text" name="alalala">
正则表达式在$ _post [alalala]
中找不到阿拉伯语修改
不工作:s,问题不在p {阿拉伯语}
只有在提交表单
时才会找到阿拉伯语字符EDIT2 :当我更改行
时$username = $_POST["alalala"];
到
$username = "any thing نستيتيلا";
正则表达式找到阿拉伯语字符
答案 0 :(得分:0)
试试这个:
preg_match(/^(\p{Arabic}|[a-zA-Z0-9])+$/i, $username)
答案 1 :(得分:0)
尝试https://stackoverflow.com/a/3631408/731179
<?php
preg_match("/^[a-zA-Z\p{Arabic}0-9\s\-]+$/u", "whatever");
?>
PHP支持PCRE
http://fi.php.net/manual/en/function.preg-match.php#105324 http://fi.php.net/manual/en/regexp.reference.unicode.php