更新時(shí)間:2022-06-30 10:53:27 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2929次
在Java教程中大家會(huì)學(xué)到很多知識(shí),Java正則表達(dá)式就是要學(xué)習(xí)的課程之一,那么,用Java正則校驗(yàn)密碼要怎么做?動(dòng)力節(jié)點(diǎn)小編來(lái)告訴大家。
主要思路是:
(1)校驗(yàn)密碼中一定包含大寫、小寫、數(shù)字和標(biāo)點(diǎn)符號(hào);
(2)且校驗(yàn)密碼中一定不包含除大寫、小寫、數(shù)字和標(biāo)點(diǎn)符號(hào)以外的字符
public boolean validatePassword(String password) {
return Pattern.compile("[0-9]+").matcher(password).find() &&
Pattern.compile("[a-z]+").matcher(password).find() &&
Pattern.compile("[A-Z]+").matcher(password).find() &&
Pattern.compile("[\\p{Punct}]+").matcher(password).find() &&
!Pattern.compile("[^0-9a-zA-Z\\p{Punct}]+").matcher(password).find();
}
代碼中matcher(password).find()則是匹配密碼是否含有符合前面正則表達(dá)式的字符,找到就返回true。最后一個(gè)表達(dá)式則是用了兩個(gè)反邏輯,首先正則表達(dá)式中取反是表示要匹配其他字符,最前面的!則是表示找不到其他字符。那么校驗(yàn)符合上面兩點(diǎn),則表示密碼一定包含四種字符且不包含其他字符。
思路:在上面基礎(chǔ)上,判斷每個(gè)表達(dá)式的值,例如為true則計(jì)數(shù)值加1,那么判斷最終的計(jì)數(shù)值大于等于3即可。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)