99久久精品国产片-99久久精品国产免费-99久久精品国产麻豆-99久久精品国产国产毛片-99久久精品国产高清一区二区-99久久精品费精品国产一区二区

密碼驗證 : 密碼強度驗證

2020-3-18    前端達人

密碼強度驗證

需求

首先我們需要知道需求是什么? 這很重要!



要知道 我們寫的一切邏輯都是建立在需求之上



當輸入框聚焦時提示密碼要求



當密碼符合要求時 隱藏提示 并給予反饋



密碼等級低時 提示密碼等級為低



密碼等級一般時 提示密碼等級為中



密碼等級高時 提示密碼等級為高



當密碼不符合要求時 重新打開提示



思考如何構(gòu)建函數(shù)
通過上面的需求 你能想到的函數(shù)時什么?你能想到的邏輯又是什么?

首先 提示的顯示隱藏我們可以用事件綁定或者事件監(jiān)聽來做

其次 我們需要利用正則來判斷密碼等級

當密碼等級為低時 顯示紅色

當密碼等級為中時 顯示黃色

當密碼等級為高時 顯示綠色

最后 根據(jù)密碼等級來渲染頁面 也就是反饋給用戶的樣式

建議 :

在這里 盡量把每個函數(shù)的功能區(qū)分好 構(gòu)思好

不僅要讓自己能看懂 還要讓別人能看懂

這樣的代碼才是好的代碼 可讀性更好 可維護性更高


實現(xiàn)功能 實現(xiàn)需求

HTML結(jié)構(gòu)

在提示盒子的內(nèi)部寫3個div 不同等級給予不同顏色不同數(shù)量的提示

 密碼 : <input type="text" id="ipt">
    <p id="p">請輸入6-20位的帶有數(shù)字字母或者特殊符號的密碼</p>
    <div class="box">
        <span></span>
        <div></div>
        <div></div>
        <div></div>
    </div>


點擊查看原圖



不管樣式行為再怎么花里胡哨 也一定要先把結(jié)構(gòu)里要出現(xiàn)的元素寫出來



CSS樣式

由于考慮到等級分為三種 所以給提示盒子分3中不同的class類名

每一個類名對應(yīng)的子元素的樣式也不同

到j(luò)s部分我們只需要操作class類名就可以了

   <style>
        *{
            margin : 0 ;
            padding : 0 ;
        }
        //提示盒子
        .box{
            position : absolute;
            top : 2px;
            left : 200px;
        }
        .box div,
        .box span{
            margin-right : 5px;
            width : 20px;
            height : 20px;
            float : left;
        }
        //低等級
        .box.low :nth-child(2){
            background : red;
        }
        //中等級
        .box.middle div{
            background : yellow;
        }
        .box.middle :last-child{
            background: #fff;
        }
        //高等級
        .box.high div{
            background : green;
        }
        //提示文字默認隱藏
        p{
            display : none;
        }
    </style>



20200315203557273.png

JS行為

 <script>
        //獲取需要操作的元素
        let ipt = document.getElementById('ipt');
        let p = document.getElementById('p');
        let div = document.getElementsByClassName('box')[0];
        var tip = false; //聚焦顯示提示的開關(guān)
        //添加聚焦事件
        ipt.addEventListener('focus' , () => {
            //由于存在用戶輸入正確的密碼失焦再操作的可能 所以需要驗證開關(guān)
            if(!tip) {
                p.style.display = 'block';
            }
            //默認選中文字 提升用戶體驗
            ipt.select();
        })
        //添加輸入時的事件
        ipt.addEventListener('input' , () => {
            //拿到用戶輸入的密碼字符串
            let str = ipt.value;
            //當密碼不符合要求時 要及時給予反饋 及時清除樣式
            if(str.length < 6 ||str.length > 20 || /[^(\da-zA-Z\_\#\@\$\^\%\*\&\!\~\+\-)]/.test(str) || str === "") {
                p.style.display = 'block';
                removeClass(div);
                div.children[0].innerHTML = "";
                tip = true;
                //如果不符合要求 就沒必要判斷等級了 直接結(jié)束判斷
                return false;
            }else{
                p.style.display = 'none';
            }
            //判斷密碼等級
            let res = level(str);
            //根據(jù)等級添加樣式
            randerLevel(res);
        })
        //判斷密碼等級函數(shù)
        function level (str) {
            let level = 0;
            //當用戶輸入的字符串符合一定規(guī)則 讓等級+1
            if(/\d+/.test(str)) {
                level ++;
            }
            if(/[a-zA-Z]+/.test(str)) {
                level ++;
            }
            if(/[\_\#\@\$\^\%\*\&\!\~\+\-]+/.test(str)) {
                level ++;
            }
            return level;
        }
        //添加樣式函數(shù)
        function randerLevel (level) {
            //在添加樣式前先清空樣式
            removeClass(div);
            div.children[0].innerHTML = "";
            //根據(jù)等級添加對應(yīng)的類名
            switch (level) {
                case 1 :
                    div.children[0].innerHTML = '低';
                    //元素存在不止一個類名 用 += 更好
                    div.className += ' low';
                    break;
                case 2 :
                    div.children[0].innerHTML = '中';
                    div.className += ' middle';
                    break;
                case 3 :
                    div.children[0].innerHTML = '高';
                    div.className += ' high';
                    break;
            }
        }
        //去等級類名函數(shù)
        function removeClass(ele){
            let reg = /low|middle|high/g;
            if(reg.test(ele.className)) {
                //不要忘記把值賦回去 replace返回的是新字符串
                ele.className = ele.className.replace(reg , "");
            }
        }
    </script>

當密碼等級為低時 給予紅色反饋

2020031520385174.png


  • 當密碼等級為中時 給予黃色反饋
    20200315203928450.png
  • 當密碼等級為高時 給予綠色反饋
    20200315203952860.png
  • 當密碼長度太短或太長時 不給予顏色反饋 給予文字反饋
20200315204030964.png


————————————————
版權(quán)聲明:本文為CSDN博主「豆?jié){不好喝」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_45178648/article/details/104885417

日歷

鏈接

個人資料

藍藍設(shè)計的小編 http://www.lapeinture.cn

存檔

欧美激情一区二区三区视频| 午夜久久网| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 成人免费网站视频ww| 国产视频一区二区在线播放| 精品在线观看国产| 免费毛片播放| 久久福利影视| 免费的黄色小视频| 999久久狠狠免费精品| 精品久久久久久影院免费| 色综合久久天天综合| 韩国毛片 免费| 欧美大片一区| 国产网站麻豆精品视频| 成人免费观看网欧美片| 午夜在线观看视频免费 成人| 欧美激情中文字幕一区二区| 高清一级片| 日本免费乱理伦片在线观看2018| 天天做日日干| 日韩中文字幕在线亚洲一区| 韩国三级视频网站| 欧美激情一区二区三区在线| 天天做人人爱夜夜爽2020| 国产精品自拍在线观看| 久久精品人人做人人爽97| 麻豆午夜视频| 欧美另类videosbestsex| 黄色短视频网站| 日韩免费在线视频| 亚欧乱色一区二区三区| 久久国产精品自线拍免费| 九九热国产视频| 天天色色色| 国产视频网站在线观看| 日韩av成人| 黄色福利| 欧美一级视频免费| 国产不卡在线播放| 国产91精品一区| 成人高清视频在线观看| 黄视频网站免费看| 欧美一级视频免费观看| 天天色色色| 成人高清护士在线播放| 国产精品123| 国产美女在线一区二区三区| 国产不卡在线播放| 高清一级做a爱过程不卡视频| 99热精品一区| 91麻豆精品国产自产在线| 久久福利影视| 国产a毛片| 免费国产在线视频| 韩国毛片基地| 国产伦久视频免费观看 视频| 成人在激情在线视频| 亚洲精品中文一区不卡| 成人免费观看网欧美片| 国产欧美精品| 欧美激情一区二区三区在线播放| 精品美女| 97视频免费在线| 国产成人欧美一区二区三区的| 沈樵在线观看福利| 九九九在线视频| 香蕉视频三级| 可以在线看黄的网站| 一级毛片视频在线观看| 韩国三级一区| 国产一区二区精品| 九九免费精品视频| 欧美另类videosbestsex| 黄视频网站免费观看| 麻豆系列国产剧在线观看| 国产成人啪精品| 久久精品大片| 91麻豆国产级在线| 色综合久久天天综合| 亚洲 激情| 可以在线看黄的网站| 亚洲女人国产香蕉久久精品| 国产91精品系列在线观看| 黄视频网站免费观看| 九九精品在线播放| a级黄色毛片免费播放视频| 色综合久久天天综线观看| 欧美激情一区二区三区在线| 午夜在线影院| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 四虎影视久久| 九九精品在线| 国产成+人+综合+亚洲不卡| 国产不卡在线看| 国产成a人片在线观看视频| 成人av在线播放| 韩国毛片基地| 国产原创视频在线| 九九热国产视频| 成人a大片在线观看| 999久久狠狠免费精品| 麻豆午夜视频| 亚洲第一色在线| 日韩专区亚洲综合久久| 国产亚洲精品成人a在线| 久久精品免视看国产成人2021| 久久久成人网| 欧美1区| 国产亚洲男人的天堂在线观看| 天天做日日干| 精品国产一区二区三区久 | 免费毛片播放| 国产原创视频在线| 美女免费毛片| 久久精品人人做人人爽97| 久久精品免视看国产成人2021| 黄色福利| 久久国产一区二区| 成人免费观看视频| 九九久久99综合一区二区| 精品国产亚一区二区三区| 日韩一级精品视频在线观看| 999久久久免费精品国产牛牛| 日韩在线观看免费完整版视频| 九九久久国产精品大片| 日韩avdvd| 欧美日本韩国| 九九久久99综合一区二区| 国产网站免费视频| 欧美一区二区三区性| 欧美一级视| 可以免费看污视频的网站| 青青青草影院| 一级片片| 日日日夜夜操| 国产一区国产二区国产三区| 高清一级片| 免费一级生活片| 色综合久久天天综合| 国产视频一区在线| 日韩欧美一二三区| 国产成人精品综合在线| 久久久久久久免费视频| 成人免费观看的视频黄页| 日本免费看视频| 久久国产一区二区| 黄视频网站在线看| 尤物视频网站在线观看| 91麻豆国产级在线| 欧美大片毛片aaa免费看| 精品视频在线观看免费| 午夜久久网| 欧美激情一区二区三区在线播放| 亚洲天堂一区二区三区四区| 香蕉视频一级| 91麻豆爱豆果冻天美星空| 成人影院久久久久久影院| 国产激情一区二区三区| 久久国产精品自由自在| 免费国产在线观看| 国产a网| 国产国语在线播放视频| 午夜激情视频在线观看| 成人a级高清视频在线观看| 成人免费网站视频ww| 人人干人人草| 国产伦精品一区二区三区无广告| 国产麻豆精品高清在线播放| 国产韩国精品一区二区三区| 天天做日日爱夜夜爽| 日韩免费在线视频| 国产高清视频免费| 久久福利影视| 美女免费黄网站| 精品久久久久久综合网| 国产一区二区精品久| 国产成+人+综合+亚洲不卡| 欧美电影免费| 日韩中文字幕在线观看视频| 成人高清免费| 国产网站麻豆精品视频| 青青青草影院| 你懂的福利视频| 黄色免费三级| 九九久久国产精品| 久久精品免视看国产成人2021| 日韩av片免费播放| 成人av在线播放| 欧美国产日韩久久久| 黄视频网站免费| 成人a级高清视频在线观看| 午夜精品国产自在现线拍| 青青久久精品| 中文字幕一区二区三区精彩视频 | 国产高清视频免费| 一级女性全黄生活片免费| 尤物视频网站在线观看| 亚洲女人国产香蕉久久精品 | 毛片成人永久免费视频|