需求:驗證密碼,大於8位,包含字母,數字和特殊字符。必須三者同時存在。
解答:^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[\`\~\!\@\#\$\%\^\&\*\(\)\_\+\-\=\{\}\|\[\]\:\;\'\<\>\?\,\.]).{8,}$
重點:寫起來其實不難,正常寫的,在特殊字符處,多個字符在一起會因為未知的解析,出現解析錯誤發生,不能達到目的。
而且在文檔中說所有的正則符號都需要加轉義 \,但是只是加這些還是會有問題,所以最好的解決方法是所有的特殊字符都加上轉義 \
這樣就解決問題了。
補充下,在net中,如果下划線_前加了轉義\,系統會不認,所以下划線需要去掉轉義,仍然正常使用。
完美解答:^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[\`\~\!\@\#\$\%\^\&\*\(\)_\+\-\=\{\}\|\[\]\:\;\'\<\>\?\,\.]).{8,}$