当前位置: 首页 > news >正文

使用正则前瞻检查密码强度

密码强度检查

  • 8个字符以上
  • 必须包含数字
  • 必须包含大小写字母
  • 必须包含特殊字符
    如何用正则表达式来检查密码是否符合以上的条件,下面我们来一步步的实现

OFD文件在线预览-vue3插件

/^\d+[a-z]+$/

这个只能匹配前面是数字,后面是字母的情况,例如:83737aidjdh,如果前面是数字,后面是字母,无法匹配,例如:aaa456
因为正则匹配是要消耗字符的,这时候,我们要使用前瞻运算(?=规则), 前瞻运算总是从字符串开始来匹配的,不消耗字符

/^(?=.*\d).*$/;

这个可以匹配包含数字的字符串,如果不包含数字,就不能匹配,(?=.*\d)是匹配是否有数字,.*是匹配后,将剩余字符消耗,结束匹配

/^(?=.*\d)(?=.*[a-z]).*$/;

这个可以匹配包含数字和小写字母的字符串,如果不是同时包含数字和小写字母,就不能匹配

/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@_.,]).*$/;

这个可以匹配包含数字、小写字母、大写字母、特殊字符的字符串,如果不是同时包含,就不能匹配,但是问题是没有规定哪些字符不能出现,是因为在(?=规则)匹配完成后,.*消耗字符太宽泛,需要替换成规则中的字符

/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@_.,])[\da-zA-Z@_.,]{8}$/;

这个就可以匹配文章开头提到的密码规则

  • {8}是检查长度必须为8位,如果是6-12位,可以写成{6,12}
  • \d 是数字 (?=.*\d) 是匹配数字
  • [a-z] 是小写字母(?=.*[a-z])是匹配小写字母
  • [A-Z] 是大写字母(?=.*[A-Z])是匹配大写字母
  • [@_.,]是列举的特殊字符,可以自己添加(?=.*[@_.,])是匹配特殊字符
  • [\da-zA-Z@_.,]是在前瞻运算匹配结束后,检查整个字符串中,是否只包含上面规则中的字符
  • ^表示匹配字符串的开始位置
  • $ 表示匹配字符串的结束位置

相关文章:

  • VS2022输入 scanf 报错解决方法
  • 99.HarmonyOS NEXT跑马灯组件教程:动画配置与参数详解
  • 工厂模式的扩展
  • 2.7 滑动窗口专题:串联所有单词的子串
  • 2024浙江大学计算机考研上机真题
  • 日志、类加载器、XML(配置文件)
  • 如何免费无限制使用 Cursor 软件:完整指南
  • 生活中的可靠性小案例12:类肤材质老化发粘问题
  • git操作大全
  • EDAS:投稿经验-word版本-问题解决
  • 微服务架构: SpringCloud实战案例
  • 计算机网络开发--阻塞与非阻塞、同步与异步、http协议
  • 使用 PaddleNLP 在 CPU(支持 AVX 指令)下跑通 llama2-7b或DeepSeek-r1:1.5b 模型(完成度80%)
  • VUE2与VUE3的底层监听工具对比:Object.defineProperty() (Vue 2) 与 Proxy (Vue 3)
  • 树莓派急速安装ubuntu;映射磁盘与储存磁盘文件;ubuntu映射整个工程;保存系统工作状态
  • DOM4J解析XML, 修改xml的值
  • Springboot+mybait查询功能撰写
  • prometheus自定义监控(pushgateway和blackbox)和远端存储VictoriaMetrics
  • 深度解析React Native底层核心架构与演进之路
  • 零基础keil:设置注释快捷键
  • 女生做网站编辑好吗/网站是否含有seo收录功能
  • 陇南网站设计/seo长尾快速排名
  • 襄樊建设网站/网站推广网
  • 企业局域网组建与网站建设/seo运营做什么
  • 网站构成三要素/站长工具 忘忧草
  • 池州做网站公司/欧洲站fba