我使用以下正則表達式來驗證用戶名(註冊表單中的輸入類型文本),以確保用戶名僅包含字母數字字符,點,短劃線或下劃線。PHP正則表達式&號問題
if (!preg_match('/^[a-zA-Z0-9\.\_-]+$/',$my_name)) { echo 'no_valid'; }
當我在實例%或#文本字段或@ I型找回正確的,它不是一個有效的用戶名,也有效字符錯誤信息(-_)被接受,因此它似乎直到我輸入&或+時,我可以使用preg_match鍵入任何我已經排除的無效字符。
有人能告訴我爲什麼會發生這種情況,我該如何解決這個問題?
我試過你的代碼,它適用於我。 –
$ my_name是如何設置的?即'index.php?name = bob&x'命名爲'bob'。你可能需要添加一個最小長度,例如'/^[a-zA-Z0-9 \ ._ \ - ] {5,} $ /'用於5個字符或更多的字符串 – Waygood
對不起,我忘了提及我稱之爲PHP正則表達式由輸入類型用戶名字段的鍵盤事件上的ajax帖子。我不知道這是否是一個額外的有價值的信息給你。 – AlexCode