2012-02-22 101 views
0

當我發送的形式,並檢查是否有阿拉伯語和英語和數字字符下面的代碼不工作:正則表達式和變量後

<? 
$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 نستيتيلا"; 

正則表達式找到阿拉伯語字符

+1

的可能重複[如何添加阿拉伯語字母URL正則表達式(http://stackoverflow.com/questions/4842378/how-to-add-arabic-letters-to-url-regex) – mario 2012-02-22 15:39:55

+1

無論如何你需要'/ u'修飾符。爲了簡單起見,使用上面提到的'\ p {...}'thingy來代替字符範圍。 – mario 2012-02-22 15:40:38

回答

0

試試這個:

preg_match(/^(\p{Arabic}|[a-zA-Z0-9])+$/i, $username)

+0

不工作:s,問題不在p {阿拉伯語} 它只在表單提交時找到阿拉伯文字符 – 2012-02-22 15:45:22

+0

使用GET方法並檢查URL欄。那裏可能沒有阿拉伯字符。 – Alice 2012-02-22 15:50:33

+0

我這樣做,阿拉伯語存在於URL欄中 – 2012-02-22 15:57:19