日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

正则表达式--密码复杂度验证--必须包含大写、小写、数字、特殊字符中的至少三项

發(fā)布時間:2024/8/26 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 正则表达式--密码复杂度验证--必须包含大写、小写、数字、特殊字符中的至少三项 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

密碼復(fù)雜度要求:

大寫字母、小寫字母、數(shù)字、特殊字符,四項中至少包含三項。

import org.junit.Test; import org.springframework.util.StringUtils;import java.util.ArrayList; import java.util.Arrays; import java.util.List;/*** @Author TeacherFu* @Version 1.0*/ public class PasswordTest { /*** 1.全部包含:大寫、小寫、數(shù)字、特殊字符;* 2.無大寫:小寫、數(shù)字、特殊字符;* 3.無小寫:大寫、數(shù)字、特殊字符;* 4.無數(shù)字:大寫、小寫、特殊字符;* 5.無特殊字符:大寫、小寫、數(shù)字;*/@Testpublic void complexTest(){List<String> list = Arrays.asList(new String[]{//全包含"aBcd12@","aB2@dfgh","aB2_dfgh","123Abc_","_123Abc","~123Abc",//無大寫"abcd12@","!abcd12","(abcd12",")abcd12","{abcd12","}abcd12","[abcd12","]abcd12","|abcd12","\\abcd12","\"abcd12","'abcd12",":abcd12","?abcd12","<abcd12",">abcd12","~abcd12","3~bcd12","F~bcd12",//無小寫"ABCD12@","!ABCD12","!AB12333",//無數(shù)字"aBcd_@","!Abcd",//無特殊字符"abCd12","abcD12","12345678","abcdefgh","ABCDEFGH","abcd1234","ABCD1234",//無特殊字符"aBcd1234",//無數(shù)字"abcdEfgh!","~!@#$%^&*()_+{}:'?<>","abcd!@#$","1234!@#$","",null});List<String> matches = new ArrayList<String>();for(String word : list){//if(isComplexityMatches(word)) {matches.add(word);}}System.out.println(Arrays.toString(matches.toArray()));List<String> matches2 = new ArrayList<String>();for(String word : list){//if(isComplexityMatches2(word)) {matches2.add(word);}}System.out.println(Arrays.toString(matches2.toArray()));List<String> matches3 = new ArrayList<String>();for(String word : list){//if(isComplexityMatches3(word,5,6)) {matches3.add(word);}}System.out.println(Arrays.toString(matches3.toArray()));}/*** 復(fù)雜度要求:* 大寫、小寫、數(shù)字、特殊字符,需要包含其中至少三項** @param content* @return*/private boolean isComplexityMatches(String content){if(!StringUtils.hasLength(content)){return false;}//1.全部包含:大寫、小寫、數(shù)字、特殊字符;String regex1 = "(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[\\W_])^.*$";//2.無大寫:小寫、數(shù)字、特殊字符;String regex2 = "(?=.*[a-z])(?=.*[0-9])(?=.*[\\W_])^.*$";//3.無小寫:大寫、數(shù)字、特殊字符;String regex3 = "(?=.*[A-Z])(?=.*[0-9])(?=.*[\\W_])^.*$";//4.無數(shù)字:大寫、小寫、特殊字符;String regex4 = "(?=.*[A-Z])(?=.*[a-z])(?=.*[\\W_])^.*$";//5.無特殊字符:大寫、小寫、數(shù)字;String regex5 = "(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])^.*$";String regex = "(" + regex1 + ")|(" + regex2 + ")|(" + regex3 + ")|(" + regex4 + ")|(" + regex5 + ")";return content.matches(regex);}private boolean isComplexityMatches2(String content){if(!StringUtils.hasLength(content)){return false;}//String regex = "^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\\W_!@#$%^&*`~()-+=]+$)(?![0-9\\W_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9\\W_!@#$%^&*`~()-+=]{8,30}$";//String regex = "^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_]+$)(?![a-z0-9]+$)(?![a-z\\W_]+$)(?![0-9\\W_]+$)[a-zA-Z0-9\\W_]{8,30}$";//String regex = "^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_]+$)(?![a-z0-9]+$)(?![a-z\\W_]+$)(?![0-9\\W_]+$)[a-zA-Z0-9\\W_]{5,30}$";//String regex = "^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_]+$)(?![a-z0-9]+$)(?![a-z\\W_]+$)(?![0-9\\W_]+$)[a-zA-Z0-9\\W_]{5,}$";String regex = "^(?![A-Za-z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_]+$)(?![a-z0-9]+$)(?![a-z\\W_]+$)(?![0-9\\W_]+$)[A-Za-z0-9\\W_]{5,}$";//ok//String regex = "(?![A-Za-z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_]+$)(?![a-z0-9]+$)(?![a-z\\W_]+$)(?![0-9\\W_]+$)^[A-Za-z0-9\\W_]{5,}$";//ok//String regex = "^[A-Za-z0-9\\W_]{5,}$(?![A-Za-z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_]+$)(?![a-z0-9]+$)(?![a-z\\W_]+$)";//錯誤的模式,測試結(jié)果不正確(此模式匹配的是:大寫、小寫、數(shù)字、特殊字符等四項必須全部包含)String regex2 = "^(?![A-Za-z0-9]+$)(?![a-z0-9\\W]+$)(?![A-Za-z\\W]+$)(?![A-Z0-9\\W]+$)[a-zA-Z0-9\\W]{5,30}$";return content.matches(regex);//return content.matches(regex2);}private boolean isComplexityMatches3(String content,Integer minLength,Integer maxLength){if(!StringUtils.hasLength(content)){return false;}if(minLength != null && maxLength != null && minLength > maxLength){System.out.println("參數(shù)非法:最小長度不能大于最大長度。");return false;}if(minLength == null && maxLength != null && maxLength < 0){System.out.println("參數(shù)非法:最大長度不能小于0。");return false;}String length = "";if(minLength == null || minLength < 1){length = "{0,";}else{length = "{" + minLength + ",";}if(maxLength == null){length = length + "}";}else {length = length + maxLength + "}";}//String regex = "^(?![A-Za-z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_]+$)(?![a-z0-9]+$)(?![a-z\\W_]+$)(?![0-9\\W_]+$)[A-Za-z0-9\\W_]{5,}$";//okString regex = "^(?![A-Za-z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_]+$)(?![a-z0-9]+$)(?![a-z\\W_]+$)(?![0-9\\W_]+$)[A-Za-z0-9\\W_]" + length + "$";return content.matches(regex);} }

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的正则表达式--密码复杂度验证--必须包含大写、小写、数字、特殊字符中的至少三项的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。