我一直試圖使用preg_match和"/^[a-zA-Z0-9_-]+$/"
試圖確保給出的字符串只包含那裏的字符而沒有其他字符,但它似乎沒有正確地計數$以便它匹配一直到該行的末尾,但它確實需要在使用^的字符串開始處進行匹配。使用正則表達式在PHP中檢查字符串格式
如果我使用{3,}
代替+
:"/^[a-zA-Z0-9_-]{3,}$/"
這是我怎麼過的起初,我可以寫3個字母/數字 - 或者_,然後任意字符以外的其他,它會指望它作爲搭配。
代碼:
if(preg_match("/^[a-zA-Z0-9_-]+$/", $value, $arr) && strlen($value) > 3)
{
echo $good .' Ok';
}
else
{
echo $bad .' Invalid username. (letters & numbers only)';
}
使用像下面爲$值,它告訴我,這是確定的時候,應該來了,因爲空間或&字符爲無效的用戶名。
一字一句
字&字
而事實證明,這是因爲值正在通過$ _GET和東西$值發送到頁面,如「字&字「作爲」單詞「取而代之......有沒有辦法解決這個問題?
這應該工作,看到http://rubular.com/r/NCA8fghoxo – quantumSoup 2010-08-23 14:40:42
你能舉幾個例子,其字符串應該匹配和唐不工作? (也是你的PHP代碼,也許你做錯了什麼,正則表達式對我來說很好)。 – 2010-08-23 14:41:00
所以你可以只有字母和數字 – 2010-08-23 14:49:21