2012-09-09 60 views
1

我試圖使用preg_match()只允許字符從AZ。我使用這個字符串:PHP - preg_match()允許意想不到

if (! preg_match('/[^a-z]/i', $name)) { 
    echo 'Invalid characters in your name..'; 
    return false; 
} 

但由於某些原因,它允許所有字符。我已經很長時間在這些線上主演過了,我不明白爲什麼它不起作用。

+1

更改正則表達式爲'^ [A-Z] + $'shuld工作 – Breezer

+0

@Breezer做一個答案,請。這工作:) – skolind

+0

那裏你去希望它可以幫助 – Breezer

回答

4

你的模式只搜索一個字符,這就是爲什麼它每次都會返回真值,如果不是字符串只包含無效字符。

改變這個你模式這一點,你應該建立和運行

^[a-z]+$ 

,如果你想允許大寫字母太

^[A-za-z]+$ 

也許nummbers

^[A-za-z0-9]+$ 

編輯: 如果要檢查一個字符串<> 的,你可以使用

(<|>) 

但它將返回true

+0

非常感謝!那麼我將如何搜索'<>'?如果存在,則返回false。 – skolind

+0

這個代碼不允許'<>'所以如果它包含'<>'它會返回false – Breezer