正則表達式校驗密碼(要求大小寫字母數字特殊符號四選三)
要求:
- 密碼長度最少8位最多32位
- 大寫字母,小寫字母,數字,特殊符號必須四選三
首先給出全部四種的匹配表達式:[a-zA-Z0-9\W_]{8,}
其中\W
匹配任意不是字母,數字,下划線,漢字的字符。
然后使用排除法,排除其中只選一種或只選兩種的情況,剩下的就是選了三種的情況了。
大小寫,大寫+數字,大寫+特殊符,小寫+數字,小寫+特殊符,數字+特殊符。共這6種組合。
最后使用(?!...)
組合起來,就得到最終需要的表達式:
1 ^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_]+$)(?![a-z0-9]+$)(?![a-z\W_]+$)(?![0-9\W_]+$)[a-zA-Z0-9\W_]{8,32}$