JAVA正则校验密码

1.(要求包含大写小写数字标点符号四种字符)

主要思路是:1. 校验密码中一定包含大写、小写、数字和标点符号;2. 且校验密码中一定不包含除大写、小写、数字和标点符号以外的字符

public boolean validatePassword(String password) {
        return Pattern.compile("[0-9]+").matcher(password).find() &&
                Pattern.compile("[a-z]+").matcher(password).find() &&
                Pattern.compile("[A-Z]+").matcher(password).find() &&
                Pattern.compile("[\\p{Punct}]+").matcher(password).find() &&
                !Pattern.compile("[^0-9a-zA-Z\\p{Punct}]+").matcher(password).find();
    }

代码中matcher(password).find()则是匹配密码是否含有符合前面正则表达式的字符,找到就返回true。最后一个表达式则是用了两个反逻辑,首先正则表达式中取反是表示要匹配其他字符,最前面的!则是表示找不到其他字符。那么校验符合上面两点,则表示密码一定包含四种字符且不包含其他字符。

2. (要求包含大写小写数字标点符号四种字符中的任意三种)

思路:在上面基础上,判断每个表达式的值,例如为true则计数值加1,那么判断最终的计数值大于等于3即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值