必須大於等於8個字符,必須有數字,必須有小寫字母,必須有大寫字母,必須有字母數字下劃線以外的字符
=.) 這是零寬斷言,表示在這個位置之後的字符串必須符合?=後的正則,但(?=...)並不消耗字符,在這之後的正則還是從同一位置開始匹配
=^.{8,}$) 必須有8個以上的字符
=.*\d) 必須有一個數字
=.*\W+) 必須有字母數字下劃線以外的字符
![.\n]) !表示否定,=相反,這個表示不能是點和換行符開頭的字符串
=.*[A-Z]) 必須有一個大寫字母
=.*[a-z]) 必須有一個小寫字母
最後的 .*$用於實際匹配字符串,即匹配任意字符串到尾部
https://www.zybang.com/question/acf0466b2b47d394dac80cdb7d5cc37e.html