1
我有以下的正則表達式來驗證用戶名正則表達式的用戶名,其允許數字或字符和一些特殊字符
strUsername.match(/[[email protected]]{6,100}$/g)
用戶名必須是至少6個的100號碼或字符最大長度和下列特殊字符_ 。@是可選的。
它適用於大多數情況下,但不知何故這個用戶名user-omega32通過,這實在不應該。有人可以告訴我爲什麼嗎?
我有以下的正則表達式來驗證用戶名正則表達式的用戶名,其允許數字或字符和一些特殊字符
strUsername.match(/[[email protected]]{6,100}$/g)
用戶名必須是至少6個的100號碼或字符最大長度和下列特殊字符_ 。@是可選的。
它適用於大多數情況下,但不知何故這個用戶名user-omega32通過,這實在不應該。有人可以告訴我爲什麼嗎?
我試圖strUsername.match(/^[\ W_使用。 @] {6,100} $/g))和它的工作。但我不明白,爲什麼我需要添加^?爲什麼\ w與[a-zA-Z0-9_]相同?你知道/ g的意思嗎? – GLP
問題是,對於'user-omega32'的輸入,你的正則表達式匹配'omega32'(因爲你沒有''錨)。 '/ g'用於全局,因爲你匹配單個值,所以你不需要它。最後'\ w是[a-zA-Z0-9_]' – anubhava
的快捷方式非常感謝。所以我不需要/ g? – GLP