2013-01-17 86 views
3

我遇到了preg_match()和反斜槓的奇怪問題。我試圖檢查非法字符的用戶名。它幾乎適用於所有內容,但顯然像'BobDobbs'這樣的用戶名正在通過。允許反斜槓的preg_match問題

我已經設法用strpos()輕鬆解決了這個問題,但我仍然不確定我的語法有什麼問題。運行PHP 5.3.10。

$displayname = 'BobDobbs\\\\'; 
if(preg_match("/[^A-z0-9_.-]/", $displayname)) { 
    $errors[] = 'Name contains illegal characters'; 
} 

回答

8

範圍A-z包含\字符。我想你正在尋找a-zA-Z

A是65,z是122和\是92)

+1

或'A-Z'和使用'/ i'改性劑。 –

+0

謝謝!現在非常明顯。中間有幾個非法字符。 – RevNoah