关于登陆密码强度的正则

关于登陆密码强度的正则

题目:如果是两种类型的结合,那么密码强度为一般,第二块变为橘色。

本来两种结合写的是这样的

/^[A-Z\d]{6,20}$|^[a-zA-Z]{6,20}$|^[\da-z]{6,20}$/

但是后来发现不对,这样只输入一种也是可以通过的

想请教老师,两种类型结合的正则应该怎么写?

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

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

1回答
好帮手慕小李 2021-12-03 10:38:24

同学你好,同学写的是对的,上述正则表达式,是可以进行只输入一种的情况的检测的。

这道题是需要进行判断是否输入的是(大写、小写、数字)其中一种,再判断是否输入的是包含(大写、小写、数字)其中两种,再进行判断是否输入包含(大写、小写、数字)其中类型的全部组合。参考逻辑如下:

https://img1.sycdn.imooc.com//climg/61a9829409a01eb215450187.jpg

同学自己试试~祝学习愉快~

  • 提问者 Yuri沫 #1

    老师,这样没有做到两者或者三者结合,就拿第三种最强密码强度来说,/^[\da-zA-Z]{6,20}$/ 只输入111111也可以通过点亮绿色啊

    https://img1.sycdn.imooc.com//climg/61a99c5e089a058f03790044.jpg

    https://img1.sycdn.imooc.com//climg/61a99c5e08d96a3007650378.jpg


    2021-12-03 13:21:40
  • 好帮手慕小李 回复 提问者 Yuri沫 #2

    所以,需要添加判断,才能实现作业的需求。

    如下:


    if(输入的字符,符合只输入数字或小写字母或大写字母仅包含其中一种时){   /^\d{6,20}$|^[a-z]{6,20}$|^[A-Z]{6,20}$/


        第一个盒子变成红色

        第二个盒子灰色

        第三个盒子灰色


    }else if(输入的字符,符合数字或小写字母或大写字母包含其中两种组合时){   /^[\da-z]{6,20}$|^[A-Za-z]{6,20}$|^[\dA-Z]{6,20}$/


        第一个盒子变成红色

        第二个盒子变成橘黄色

        第三个盒子灰色


    }else if(输入的字符,符合数字或小写字母或大写字母包含所有组合时){    /^[\da-zA-Z]{6,20}$/


        第一个盒子变成红色

        第二个盒子变成橘黄色

        第三个盒子变成绿色


    }

    同学看看是否能理解,祝学习愉快~

    2021-12-03 14:54:17
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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