Java正则约束密码

1.密码只能是数字、小写英文字母、大写英文字母、下划线组成,且密码至少包含3种,长度至少有11位。

//定义字符串
String password = "slwoei123_1";
//匹配字符串
String verify = "^(?![a-zA-Z]+$)(?![a-z\\d]+$)(?![a-z_]+$)(?![A-Z\\d]+$)(?![A-Z_]+$)(?![\\d_]+$)[a-zA-Z\\d_]{11,}+$";

//匹配字符串是否符合正则表达式
        if (Pattern.matches(verify,password)){
            System.out.println("密码输入正确!");
        } else {
            System.out.println("密码不符合要求!");
        }

运行结果为:
密码输入正确!

^表示字符串的开始。

(?![a-zA-Z]+$)表示后面不能全是字母。

(?![a-z\d]+$)表示后面不能全部小写字母和数字。

(?![a-z_]+$)表示后面不能全部是小写字母和下划线。

(?![A-Z\d]+$)表示后面不能全部是大写字母和数字。

(?![A-Z_]+$)表示后面不能全部是大写字母和下划线。

(?![\d_]+$)表示后面不能全部是数字和下划线。

[a-zA-Z\d_]表示可以包含字母、数字、下划线。

{11,}表示长度11及以上。

$表示字符串的结束。

综合以上,这个正则表达式要求字符串不能全部是字母、小写字母和数字的组合、小写字母和下划线的组合、大写字母和数字的组合、大写字母和下划线的组合,且必须至少包含一个字母、一个数字和一个下划线,不能是其他特殊符号,字符串长度至少11位。

注:密码需要输入特殊符号,而不是单一下滑线的写法:在所有写下划线的地方添加其他符号即可:(?![a-z_@#$%!]+$)

2.其他正则表示方法:

(?=.*[0-9])表示密码中必须包含至少一个数字

(?=.*[a-z])表示密码中必须包含至少一个小写字母

(?=.*[A-Z])表示密码中必须包含至少一个大写字母

(?=.*[@#$%^&+=]表示密码中必须包含至少一个符号

(?=S+$)表示密码中不能包含空格

本文作者:moon-new-star

本文链接:https://www.cnblogs.com/moon-new-star/p/18052547

版权声明:本作品采用月亮新星许可协议进行许可。

posted @   月亮新星  阅读(59)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
展开