本篇整理了一些常用检查密码复杂度的正则表达式,可以根据实际情况稍作修改,请自行取用!
- 密码必须包含字母、数字和特殊符号(特殊符号可以是:`~!@#$%^&*()-=_+;':",./<>?,可以根据实际情况修改),且长度是6-32位:
^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[`~!@#$%^&*()-=_+;':",./<>?])(?=\S+$).{6,32}$
- 密码是8-16位字母和数字组合
^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$
- 密码必须包含大写、小写、数字和特殊字符,且长度是8位以上
^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[`~!@#$%^&*()-=_+;':",./<>?])(?=\S+$).{8,}$
使用方式
public class Test { public static void main(String[] args) throws Exception { System.out.println(isValidPassword("111111")); //false System.out.println(isValidPassword("Abc,123")); //true System.out.println(isValidPassword2("Abcd1234")); //true } /** * 检查密码是否是6-32位包含字母、数字和特殊符号 */ public static boolean isValidPassword(String password) { if (password == null) { return false; } // 直接使用String.matches return password.matches("^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[`~!@#$%^&*()-=_+;':\",./<>?])(?=\\S+$).{6,32}$"); } /** * 检查密码是否是8位以上包含字母、数字(不得包含特殊字符) */ public static boolean isValidPassword2(String password) { if (password == null) { return false; } // 直接正则 Pattern p = Pattern.compile("^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,}$"); Matcher m = p.matcher(password); return m.matches(); } }
文章评论