关于密码强度的正则表达式

关于密码强度的正则表达式

# 具体遇到的问题
老师,关于密码强度的正则表达式我是这么写的,但是实际测试结果跟我想得不一样,不知道问题出在哪里,请老师帮忙看一下。

# 尝试过的解决思路和结果
我的思路是这样想得:要么是字母跟数字的组合,要么是字母跟特殊符号的组合,再要么是数字跟特殊符号的组合,但是我写的正则测试的时候纯数字也是符合要求的,就以下面的第一个为例:要么是大小写字母或者数字,且至少有一个。接着逻辑或上其它两个组合,也都是至少要有一个。
# 粘贴全部相关代码,切记添加代码注释(请勿截图)

​mediumPattern = /^([a-zA-Z]+|\d+)|([a-zA-Z]+|[\.!@#\$%\^&\*\+-,]+)|([\d]+|[\.!@#\$%\^&\*\+-,]+)$/;


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕慕子 2020-11-21 10:54:34

同学你好,粘贴的这句正则表达式,由于使用的或|,所以是纯数字时也满足条件,可以通过验证。如下图所示:

http://img1.sycdn.imooc.com//climg/5fb87faa09b90dc207340099.jpg

老师这里给同学提供一个参考实现的思路,如下:

​// 密码输入框元素的失焦事件
pwdInput.onblur= function() {
// 变量接收密码框的值
var pwdValue = this.value;
// 定义数量正则
var patt = /^\S{6,20}$/;
// 定义弱-中-强的正则
var pattern1 = /^\d{6,20}$|^[a-zA-Z]{6,20}$|^(\W|_){6,20}$/,
pattern2 = /^[\da-zA-Z]{6,20}$|^[(\W|_)a-zA-Z]{6,20}$|^[(\W|_)\d]{6,20}$/,
pattern3 = /^[(\W|_)\da-zA-Z]{6,20}$/;
//当数量不符合时的操作
if (!patt.test(pwdValue)) {
// 提示信息
} else {
//当数量符合时的操作
// 弱
if (pattern1.test(pwdValue)) {
// 改变后面小方块颜色
} else if (pattern2.test(pwdValue)) {
// 中
// 改变后面小方块颜色
} else if (pattern3.test(pwdValue)) {
// 强
// 改变后面小方块颜色
}
}
}

如果还有问题,可以新建提问,将你写的完整代码(包括html、css、js)全部粘贴过来,老师帮助同学测试。

也可以完成作业后,提交作业,标注上你的问题,批作业的老师会针对同学的完整项目,给出详细的修改建议,并整理成文档发送给同学,便于同学查看与修改。

祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师