要求
密码长度 6-16 位,包含至少一个特殊字符,一个数字,一个大写字母和一个小写字母。
正则表达式
(?=^.{6,16}$)(?=(?:.*?d){1})(?=.*[a-z])(?=(?:.*?[A-Z]){1})(?=(?:.*?[`·~!@#$%^&*()_+}{|:;'",<.>/?=[]-]){1})(?!.*s)[0-9a-zA-Z`·~!@#$%^&*()_+}{|:;'",<.>/?=[]-]*$
解释
![55aa32e3c40f9495791e796d48d1e13b.png](https://img-blog.csdnimg.cn/img_convert/55aa32e3c40f9495791e796d48d1e13b.png)
一些坑
- 在做特殊字符处理这块,因为涉及到有些字符比如
= [ ] -
这四个,需要在前面加进行转义,才能正常正则识别出来。
- 特殊字符匹配,后面这段必须也包含前面的匹配代码,即两段
`·~!@#$%^&*()_+}{|:;'",<.>/?=[]-
都相同:
txt (?=(?:.*?[`·~!@#$%^&*()_+}{|:;'",<.>/?=[]-]){1})(?!.*s)[0-9a-zA-Z`·~!@#$%^&*()_+}{|:;'",<.>/?=[]-]*$
- 只支持英文状态下的特殊字符,因为发现中文的
—
和英文的-
是两个字符。
正则表达式测试网站
- regexr(强烈推荐这个)
- regexpal
- 在线工具
- 菜鸟工具
- 众果搜
- 6个在线正则表达式工具
参考
正则表达式验证密码强度gist.github.com![ab957cec5454a9e364656eb75e7ec3da.png](https://img-blog.csdnimg.cn/img_convert/ab957cec5454a9e364656eb75e7ec3da.png)
![b500bbc9ea5d8aa81d94958cb50ecaf9.png](https://img-blog.csdnimg.cn/img_convert/b500bbc9ea5d8aa81d94958cb50ecaf9.png)