[英]Strong password regular expression that matches any special char
我需要以下檢查以進行強密碼驗證:
我找到並調整了一個RegEx,就像這樣(對不起,我丟失了參考資料......):
^.*(?=.{7,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@'#.$;%^&+=!""()*,-/:<>?]).*$
它在C#
工作,除了我需要匹配任何特殊字符的事實,我的意思是任何 。 換句話說,我需要一個“特殊字符”是什么,但數量和更低/大寫字母。
為了清楚起見,讓我們考慮重音是特殊字符,因此在這個問題的上下文中應該將é
, ñ
等視為特殊字符。
^.*(?=.{7,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9]).*$
(不是C#代碼)
def validate (value):
return (value.Length >= 7 &&
value.IndexOfAny(['0', ..., '9']) >= 0 &&
value.IndexOfAny(['A', ..., 'Z']) >= 0 &&
value.IndexOfAny(['@', ..., ')']));
是的我知道這不是問題所在,但我相信它比任何RegExp解決方案更清晰,性能更高,維護更容易。
我相信 :-
\\ W
匹配任何單詞字符。
反過來是: -
\\ W
這是你想要的。
編輯
^.*(?=.{7,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[\W_]).*$
測試你的正則表達式: -
看看這里: Unicode正則表達式並選擇一個Unicode類,如\\p{Symbol}
或\\p{Punctuation}
嘗試這個:
^(?=.{7,})(?=.*?\d)(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[@'#.$;%^&+=!"()*,-/:<>?])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.