javascript實(shí)現(xiàn)前端input密碼輸入強(qiáng)度驗(yàn)證
本文實(shí)例為大家分享了js實(shí)現(xiàn)密碼輸入強(qiáng)度驗(yàn)證的具體代碼,供大家參考,具體內(nèi)容如下
需求:
1.需要對(duì)用戶輸入的密碼進(jìn)行驗(yàn)證,驗(yàn)證的級(jí)別分為強(qiáng)中弱,如果輸入的密碼強(qiáng)度少于6時(shí),則不會(huì)驗(yàn)證,只有密碼強(qiáng)度在6-20時(shí)才會(huì)進(jìn)行驗(yàn)證。
相關(guān)的正則
//密碼為八位及以上并且字母數(shù)字特殊字符三項(xiàng)都包括 var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g"); //密碼為七位及以上并且字母、數(shù)字、特殊字符三項(xiàng)中有兩項(xiàng),強(qiáng)度是中等 var mediumRegex = new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g"); var enoughRegex = new RegExp("(?=.{6,}).*", "g");
2.密碼的顯示與隱藏,點(diǎn)擊小眼可以對(duì)密碼進(jìn)行顯示或者隱藏。
具體代碼
html部分:
<div class="wrapper"> <div class="input_box"> <input type="password" name="" placeholder="請(qǐng)輸入密碼" oninput="passValidate(this)" id="inputPwd" value=""> <div class="eye_icon"></div> </div> <p>請(qǐng)至少使用字母、數(shù)字、符號(hào)兩種類型組合的密碼,長(zhǎng)度為6~20位。</p> <ul class="pwdStrength"> <li class="weak"></li> <li class="middle"></li> <li class="strong"></li> <li class="result"></li> </ul> </div>
css部分:
* { margin: 0; padding: 0; box-sizing: border-box; } .wrapper { width: 500px; height: 200px; border: 1px solid #eee; margin: 100px auto; display: flex; align-items: center; flex-direction: column; } .input_box{ width: 80%; display: flex; align-items: center; } .input_box input { width: 82%; height: 30px; border: none; outline: none; border: 1px solid #D2B48C; border-radius: 12px; margin: 10px 0px; padding-left: 15px; } .eye_icon{ width: 20px; height: 20px; background-image: url('./open_eye.png'); background-repeat: no-repeat; background-position: center content; background-size: cover; margin-left: 10px; } .wrapper p { width: 80%; height: 60px; line-height: 26px; font-size: 14px; color: #339999; } .pwdStrength { width: 80%; list-style: none; height: 30px; display: none; flex: 1; } .weak, .middle, .strong { height: 15px; width: 30px; border: 1px solid black; background: rgb(238, 238, 238); } .middle { border-left: 0; border-right: 0; } .result { width: 30px; height: 15px; font-size: 14px; line-height: 14px; text-align: center; margin-left: 10px; }
JS部分:
//密碼的可見(jiàn)與隱藏、 console.log($('#inputPwd')) var eyeFlag = false; $('.eye_icon').click(function(){ if(!eyeFlag){ $(this).css({'background-image': 'url(' + "./close_eye.png" + ')'}); $('#inputPwd').attr('type','text'); }else{ $(this).css({'background-image': 'url(' + "./open_eye.png" + ')'}); $('#inputPwd').attr('type','password') } eyeFlag = !eyeFlag; }) //密碼強(qiáng)度驗(yàn)證 function passValidate(e) { var pwd = $.trim(e.value); if (pwd === '') { $('.pwdStrength').css({'display':'none'}) $('.weak').css({ 'background': 'rgb(238, 238, 238)' }); $('.middle').css({ 'background': 'rgb(238, 238, 238)' }); $('.strong').css({ 'background': 'rgb(238, 238, 238)' }); $('.result').text('') } else { $('.pwdStrength').css({'display':'flex'}) //密碼為八位及以上并且字母數(shù)字特殊字符三項(xiàng)都包括 var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g"); //密碼為七位及以上并且字母、數(shù)字、特殊字符三項(xiàng)中有兩項(xiàng),強(qiáng)度是中等 var mediumRegex = new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g"); var enoughRegex = new RegExp("(?=.{6,}).*", "g"); if (false == enoughRegex.test(pwd)) { } else if (strongRegex.test(pwd)) { $('.strong').css({ 'background': '#33ff33' }); $('.result').text('強(qiáng)') } else if (mediumRegex.test(pwd)) { $('.middle').css({ 'background': '#FFC125' }); $('.strong').css({ 'background': 'rgb(238, 238, 238)' }); $('.result').text('中') } else { $('.weak').css({ 'background': '#EE4000' }); $('.middle').css({ 'background': 'rgb(238, 238, 238)' }); $('.strong').css({ 'background': 'rgb(238, 238, 238)' }); $('.result').text('弱') } } }
效果
密碼強(qiáng)度為弱
密碼強(qiáng)度為中:
密碼強(qiáng)度為強(qiáng)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- js逆向解密之網(wǎng)絡(luò)爬蟲(chóng)
- Js逆向?qū)崿F(xiàn)滑動(dòng)驗(yàn)證碼圖片還原的示例代碼
- JS正則表達(dá)式驗(yàn)證密碼強(qiáng)度
- js判斷密碼強(qiáng)度的方法
- js實(shí)現(xiàn)登錄時(shí)記住密碼的方法分析
- JS實(shí)現(xiàn)表單中點(diǎn)擊小眼睛顯示隱藏密碼框中的密碼
- javascript實(shí)現(xiàn)京東登錄顯示隱藏密碼
- JS實(shí)現(xiàn)密碼框效果
- JavaScript實(shí)現(xiàn)密碼框輸入驗(yàn)證
- JavaScript逆向案例之如何破解登錄密碼
相關(guān)文章
JS網(wǎng)頁(yè)在線獲取鼠標(biāo)坐標(biāo)值的方法
這篇文章主要介紹了JS網(wǎng)頁(yè)在線獲取鼠標(biāo)坐標(biāo)值的方法,涉及javascript操作頁(yè)面窗口位置元素的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-02-029102了,你還不會(huì)移動(dòng)端真機(jī)調(diào)試嗎
這篇文章主要介紹了9102了,你還不會(huì)移動(dòng)端真機(jī)調(diào)試嗎,本文詳細(xì)的介紹了3種移動(dòng)端真機(jī)調(diào)試方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03Jquery顏色選擇器ColorPicker實(shí)現(xiàn)代碼
這里我要分享一個(gè)自己修改的顏色選擇器,有需要的朋友參考下2012-11-11原生JS實(shí)現(xiàn) MUI導(dǎo)航欄透明漸變效果
透明漸變導(dǎo)航是一種解決滾動(dòng)條通頂?shù)淖兺ǚ桨?。這篇文章主要介紹了原生JS實(shí)現(xiàn) MUI導(dǎo)航欄透明漸變效果,需要的朋友可以參考下2017-11-11讓你的博文自動(dòng)帶上縮址的實(shí)現(xiàn)代碼,方便發(fā)到微博客上
添加以下代碼到你的博客中: (呵呵,抄襲至lulu Studio http://s8.hk/0itw)2010-12-12javascript簡(jiǎn)化代碼 A=alert w=document.writeln
建議不要這樣寫代碼,考慮以后的修改才是最重要的,代碼分層.多把一個(gè)功能寫成一個(gè)js代碼或一個(gè)類,然后提供接口,這種寫法代碼會(huì)更多,速度也更慢,但人人都推薦這樣寫,是因?yàn)檫@樣子維護(hù)方便.而程序不可能一次性寫得完美的,永遠(yuǎn)都可以改進(jìn)2008-02-02