java密码校验

密码规则:长度为8-16,必须数字字母组合、可包含下划线
在网上找了很多正则表达式都不能满足我的要求。
后面综合总结了一下,用了这样的办法,在这里做一下记录


public class Test {

    public static void main(String[] args) {

       String pwd1 = "________";
        System.out.println("全是下划线:"+checkPwd(pwd1));

        String pwd2 = "12345678";
        System.out.println("全是数字:"+checkPwd(pwd2));

        String pwd3 = "abcdefga";
        System.out.println("全是字符:"+checkPwd(pwd3));

        String pwd4 = "1234";
        System.out.println("长度不足8位:"+checkPwd(pwd4));

        String pwd5 = "1234abcd1234abcd1";
        System.out.println("长度大于16位:"+checkPwd(pwd5));

        String pwd6 = "1234abcd";
        System.out.println("正确的密码:"+checkPwd(pwd6));

        String pwd7 = "1234____abcd";
        System.out.println("包含下划线:"+checkPwd(pwd7));

        String pwd8 = "1234@#!_abcd";
        System.out.println("包含特殊字符:"+checkPwd(pwd8));


    }

    public static  boolean checkPwd(String str){
            if(str.length()>=8&&str.length()<=16){
                String r = "^(?![a-zA-z]+$)(?!\\d+$)(?![!@#$%^&*]+$)[a-zA-Z\\d_!@#$%^&*]+$";
                if(str.matches(r)){
                    return true;
                }else {
                    return false;
                }
            }else{
                return false;
            }

    }
}

结果

全是下划线:false
全是数字:false
全是字符:false
长度不足8位:false
长度大于16位:false
正确的密码:true
包含下划线:true
包含特殊字符:true

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

焦虑的说说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值