生活随笔
收集整理的這篇文章主要介紹了
java正则校验密码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
java正則校驗密碼必須是包含大小寫字母、數字、特殊符號的8位以上四種組合 或者 其中任意三種組合
一、排除法和詳細解釋
1、排除大寫字母、小寫字母、數字、特殊符號中1種組合、2種組合、3種組合,那么就只剩下4種都包含的組合了
2、表達式為:^(?![A-Za-z0-9]+$)(?![a-z0-9\\W]+$)(?![A-Za-z\\W]+$)(?![A-Z0-9\\W]+$)[a-zA-Z0-9\\W]{8,}$
3、拆分解釋:其中(2)-(6)運用了零寬斷言、環視等正則功能
(1)^匹配開頭
(2)(?![A-Za-z0-9]+$)匹配后面不全是(大寫字母或小寫字母或數字)的位置,排除了(大寫字母、小寫字母、數字)的1種2種3種組合
(3)(?![a-z0-9\\W]+$)同理,排除了(小寫字母、數字、特殊符號)的1種2種3種組合
(4)(?![A-Za-z\\W]+$)同理,排除了(大寫字母、小寫字母、特殊符號)的1種2種3種組合
(5)(?![A-Z0-9\\W]+$)同理,排除了(大寫字母、數組、特殊符號)的1種2種3種組合
(6)[a-zA-Z0-9\\W]匹配(小寫字母或大寫字母或數字或特殊符號)因為排除了上面的組合,所以就只剩下了4種都包含的組合了
(7){8,}8位以上
(8)$匹配字符串結尾
密碼長度不少于8位且至少包含大寫字母、小寫字母、數字和特殊符號中的四種:
^(?![A-Za-z0-9]+$)(?![a-z0-9\\W]+$)(?![A-Za-z\\W]+$)(?![A-Z0-9\\W]+$)[a-zA-Z0-9\\W]{8,}$
密碼長度8-20位且至少包含大寫字母、小寫字母、數字或特殊符號中的任意三種:
^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_]+$)(?![a-z0-9]+$)(?![a-z\\W_]+$)(?![0-9\\W_]+$)[a-zA-Z0-9\\W_]{8,20}$
public class PasswordTest {// 密碼長度不少于8位且至少包含大寫字母、小寫字母、數字和特殊符號中的四種public static final String password1 = "^(?![A-Za-z0-9]+$)(?![a-z0-9\\W]+$)(?![A-Za-z\\W]+$)(?![A-Z0-9\\W]+$)[a-zA-Z0-9\\W]{8,}$";// 密碼長度8-20位且至少包含大寫字母、小寫字母、數字或特殊符號中的任意三種public static final String password = "^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_]+$)(?![a-z0-9]+$)(?![a-z\\W_]+$)(?![0-9\\W_]+$)[a-zA-Z0-9\\W_]{8,20}$";public static void main(String[] args) {String password1 = "ABCDEFGHIG"; //全部大寫String password2 = "abcdefghig"; //全部小寫String password3 = "0123456789"; //全部數字String password4 = "!@#$%^&*()"; //全部特殊字符String password5 = "ABCDEabcde"; //大寫和小寫String password6 = "ABCDE01234"; //大寫和數字String password7 = "ABCDE!@#$%"; //大寫和特殊字符String password8 = "abcde01234"; //小寫和數字String password9 = "abcde!@#$%"; //小寫字母和特殊字符String password10 = "01234!@#$%"; //數字和特殊字符String password11 = "Aa4!"; //長度不夠8位數String password12 = "ABCDE01234!@#$%"; //符合要求密碼任意三種String password13 = "ABCDEabcde!@#$%"; //符合要求密碼任意三種String password14 = "ABCDEabcde01234"; //符合要求密碼任意三種String password15 = "abcde01234!@#$%"; //符合要求密碼任意三種String password16= "ABCabc012@#"; //符合要求密碼任意三種 和 符合全部的四種System.out.println(password1.matches(password) + " 1");System.out.println(password2.matches(password)+ " 2");System.out.println(password3.matches(password)+ " 3");System.out.println(password4.matches(password)+ " 4");System.out.println(password5.matches(password)+ " 5");System.out.println(password6.matches(password)+ " 6");System.out.println(password7.matches(password)+ " 7");System.out.println(password8.matches(password)+ " 8");System.out.println(password9.matches(password)+ " 9");System.out.println(password10.matches(password)+ " 10");System.out.println(password11.matches(password)+ " 11");System.out.println(password12.matches(password)+ " 12");System.out.println(password13.matches(password)+ " 13");System.out.println(password14.matches(password)+ " 14");System.out.println(password15.matches(password)+ " 15");System.out.println(password16.matches(password)+ " 16");}
}
總結
以上是生活随笔為你收集整理的java正则校验密码的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。