如何在Java正则校验中加入密码第6位为唯一数字的规则
正则修改方案
修正后的代码如下:
private boolean validPass(String pwd) { return Pattern.matches("^[A-Z][a-z]{3}[^0-9]\\d[^0-9]{2,}$", pwd); }
规则对应说明
- 匹配「以大写字母开头,后接3个小写字母」:
^[A-Z][a-z]{3}限定第1位为大写字母,第2-4位为小写字母 - 匹配「仅第6位存在1个数字,全局无其他数字」:
[^0-9]限定第5位为非数字字符\\d限定第6位必须为数字- 除第6位外所有位置都用
[^0-9]做非数字限制,保证整个字符串只有第6位是数字
- 匹配「长度不小于8个字符」:末尾的
[^0-9]{2,}要求第7位开始至少存在2个非数字字符,总长度最小为4+1+1+2=8,满足长度要求
内容的提问来源于stack exchange,提问作者greystar
相关产品推荐
相关产品推荐

