正则 密码校验规则:8-16位字符,同时包括数字、大小写字母和特殊字符,其中特殊字符最多不能超过3个,且需要在“~ @ # $ % * _ - + = : , . ? [ ] { }”范围内

这个正则花费了我四五个小时研究:

初始思路:String regex = "(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[a-zA-Z0-9]{8,16}";

/** (?=.*[A-Z]) 必须有大写英文*/
/** (?=.*[a-z]) 必须有小写英文*/
/** (?=.*[0-9]) 必须有数字*/
/** [a-zA-Z0-9] 有效字符范围*/
/** {8,16} 最少8个字符,最多16个字符*/[/color]

第一个成功版本

var tx3=/^(?=.{1}.{7})(?!.{1}.{16,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[A-Za-z0-9]*[~@#\$%\*_\-\+\=\:,\.\?\[\]\{\}]{1}[A-Za-z0-9]*[~@#\$%\*_\-\+\=\:,\.\?\[\]\{\}]?[A-Za-z0-9]*[~@#\$%\*_\-\+\=\:,\.\?\[\]\{\}]?[A-Za-z0-9]*$/;

第二优化版本:

var tx3=/^(?=.{1}.{7})(?!.{1}.{16,})(?=.*[~@#\$%\*_\-\+\=\:,\.\?\[\]\{\}])(?!.*[~@#\$%\*_\-\+\=\:,\.\?\[\]\{\}]{3,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9~@#\$%\*_\-\+\=\:,\.\?\[\]\{\}]{8,16}$/;

优化最终版本:

var tx3=/^(?=.*[~@#\$%\*_\-\+\=\:,\.\?\[\]\{\}])(?!.*[~@#\$%\*_\-\+\=\:,\.\?\[\]\{\}]{3,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9~@#\$%\*_\-\+\=\:,\.\?\[\]\{\}]{8,16}$/;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值