java正则表达式问题?
PHPz
PHPz 2017-04-18 09:07:48
0
5
386

用正则表达式构造匹配:

  1. 密码必须由数字、字符、特殊字符三种同时存在组成;

  2. 密码长度不能少于8个字符;

PHPz
PHPz

学习是最好的投资!

全部回覆(5)
小葫芦

雷雷

巴扎黑

驗證了下, @菩提旭光 的答案是不正確的, 例如hello123就能匹配, 但并不满足要求. 而且 8個空格也能匹配, 但並不滿足要求, 你也沒辦法把所有特殊符號都加進去.

雖然可以加入(?=[a-zA-Z0-9_#@]+)來保證密碼不會包含除指定外的特殊符號, 但仍然無法保證它必須有三種符號.

不全是數字/字母/特殊符號, 結果是只要包含2種以上符號即可.

事實上, 這不是一個正規的問題, 參考相似問題

伊谢尔伦

把6種情況都列一遍

伊谢尔伦

@菩提旭光 的思路是對的,把negative lookahead換成positive lookahead,再稍微調整一下就行了。
(?=.d.)(?=.[a-zA-Z].)(?=.[_#@].).{8,}

迷茫

我覺得這個問題不應該用正規表達式來解決,每種工具都有非常適合使用的場景,我覺得在你這個場景裡面並不適合用正則表達式去解決,用簡單的if語句去判斷,實作簡單,而且可讀性非常好,為什麼一定要用正規表示式呢! ?

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板