2011-02-16 75 views
1
if(preg_match("/^[a-zA-Z0-9\s\!\"\№\;\%\:\?\*\(\)\<\>\/\#\$\^\&\@\-\+\_\=\|\,\.\~\{\}\[\]\'\\\\]+$/", $sometext)) 
{//only symbols from keyboard entered 
} 
else 
{//bad symbols entered 
} 

我測試了這個功能很多,看起來像它工作正常。但是,我發現它適合此字符串:preg_match允許所有鍵盤符號的問題,但禁止其他符號

how are you?'<>"\|/à 

它不應該工作,因爲符號à是不允許的。 請不要告訴我關於stripslashes,我知道。此外,我發現如果我想允許\符號,我不得不寫\\,但\\\\。我也是如此。 謝謝。

+1

我已經找到了一個小錯誤,有些反斜槓被切斷。最後一句話是:另外我發現如果我想允許\符號,我不得不寫\\(兩個沒有空格的反斜槓),但是\\ \ \(四個反斜槓沒有空格)。我也是,謝謝。 – Geremy 2011-02-16 00:44:09

回答

0

這似乎工作,雖然我似乎無法得到任何字符到模式(它有一個\呢?):

if(preg_match("/^[a-zA-Z0-9\s!\"\?;%:?*()<>\/#$\^&@\-+_=|,.~{}\[\]'\\\\]+$/", $sometext)) 
相關問題