在C#中,我試圖驗證用戶名有以下限制:正則表達式的用戶名?
- 大寫和小寫英文字母(A-Z,A-Z)
- 數字0到9
- 可接受的字符! #$%&'* + -/=?^_`{| }〜\,。 @()<> []
用戶名不限制它可以開頭的字符,以上所有都是可以接受的。你能幫我想出這個正則表達式,特別是我不得不逃脫的角色,因爲他們已經意味着正則表達式的規則?
在C#中,我試圖驗證用戶名有以下限制:正則表達式的用戶名?
用戶名不限制它可以開頭的字符,以上所有都是可以接受的。你能幫我想出這個正則表達式,特別是我不得不逃脫的角色,因爲他們已經意味着正則表達式的規則?
在character class,你只需要尋找出^
,-
,]
和\
。
前三必須進行轉義或放置在明確的位置:
^
這是任何地方,但在類中的第一個字符,-
這是在類的開始或結束,]
它在類的開始(這是可能的,至少在.NET中而不是在JavaScript中,例如)。反斜線必須始終逃脫。
所以此工程:
^[]A-Za-z0-9!#$%&'*+/=?^_`{|}~\\,[email protected]()<>[-]*$
,但我會用
^[A-Za-z0-9!#$%&'*+/=?^_`{|}~\\,[email protected]()<>[\]-]*$
的便攜性。
+1,我添加了一個Debuggex演示。 –
@MichaelPerrenoud:謝謝! –
可以逃脫使用大部分 – Slicedpan
反斜線@ General_9字符只要你知道,而正則表達式將工作,這是不必要的。如果這不是某種類型的項目,需要你使用正則表達式,你可以有可接受字符的字符串,並確保在用戶名的每個字符可以在字符串中找到。 –