JS使用正則表達(dá)式判斷輸入框失去焦點(diǎn)事件
效果圖
項(xiàng)目的正則表達(dá)式規(guī)則
1:用戶名: 大寫字母開頭 6-20位字符(不允許有符號(hào)但是允許有_)
2:密碼 大寫開頭 數(shù)字字母符號(hào)混合 8-15位
3:確認(rèn)密碼 大寫開頭 數(shù)字字母符號(hào)混合 8-15位
4:郵箱 郵箱格式
5:手機(jī)號(hào) 手機(jī)號(hào)格式
6:身份證號(hào) 身份證號(hào)格式
7:地址 中文開頭 數(shù)字 - 字母 中文混合
項(xiàng)目目錄
html代碼
由于無(wú)法上傳bootstrap.min.css
需要樣式的需要前往官網(wǎng)下載
bootstrap中文網(wǎng)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <link rel="stylesheet" href="css/bootstrap.min.css" /> <script src="js/reg.js"></script> </head> <body> <form class="form-horizontal col-md-offset-3" role="form"> <div class="form-group"> <div class="col-md-offset-3"> <h2>正則表達(dá)式</h2> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label">用戶名</label> <div class="col-lg-3"> <input class="form-control" id="UserName" name="UserName" type="text" onfocusout="verify(UserName)"> </div> <span id="UserNames" style="font-size: 16pt;"></span> </div> <div class="form-group"> <label class="col-sm-2 control-label">密碼</label> <div class="col-lg-3"> <input class="form-control" id="pwd" name="pwd" type="text" onfocusout="verify(pwd)"> </div> <span id="pwds" style="font-size: 16pt;"></span> </div> <div class="form-group"> <label class="col-sm-2 control-label">確認(rèn)密碼</label> <div class="col-lg-3"> <input class="form-control" id="affirmPwd" name="affirmPwd" type="text" onfocusout="verify(affirmPwd)"> </div> <span id="affirmPwds" style="font-size: 16pt;"></span> </div> <div class="form-group"> <label class="col-sm-2 control-label">郵箱</label> <div class="col-lg-3"> <input class="form-control" type="text" id="email" name="email" onfocusout="verify(email)"> </div> <span id="emails" style="font-size: 16pt;"></span> </div> <div class="form-group"> <label class="col-sm-2 control-label">手機(jī)號(hào)</label> <div class="col-lg-3"> <input class="form-control" type="text" id="cellPhone" name="cellPhone" onfocusout="verify(cellPhone)"> </div> <span id="cellPhones" style="font-size: 16pt;"></span> </div> <div class="form-group"> <label class="col-sm-2 control-label">身份證號(hào)</label> <div class="col-lg-3"> <input class="form-control" id="identityCard" name="identityCard" type="text" onfocusout="verify(identityCard)"> </div> <span id="identityCards" style="font-size: 16pt;"></span> </div> <div class="form-group"> <label class="col-sm-2 control-label">地址</label> <div class="col-lg-3"> <input class="form-control" id="site" name="site" type="text" onfocusout="verify(site)"> </div> <span id="sites" style="font-size: 16pt;"></span> </div> <div class="form-group"> <div class="col-lg-3 col-md-offset-3"> <input type="button" class="btn btn-primary btn-lg" value="校驗(yàn)" onclick="OnClick()"> </div> </div> </form> <script type="text/javascript"> var ID = ""; function verify(ID) { //設(shè)置一個(gè)ID用來(lái)傳參 switch (ID) { //根據(jù)傳過(guò)來(lái)的input的"ID"判斷進(jìn)行不同的正則表達(dá)式驗(yàn)證 //用戶名驗(yàn)證 case UserName: //用戶名的正則表達(dá)式 var UserNameRule = /^[A-Z][a-zA-Z0-9_]{6,20}$/; //調(diào)用下面的編寫的js方法,傳入input的id和正則表達(dá)式 reg("UserName", UserNameRule); break; case pwd: //密碼驗(yàn)證 var pwdRule = /^[A-Z][a-zA-Z0-9_]{8,15}$/; reg("pwd", pwdRule); break; case affirmPwd: //密碼確認(rèn)驗(yàn)證 var affirmPwdRule = /^[A-Z][a-zA-Z0-9_]{8,15}$/; reg("affirmPwd", affirmPwdRule); break; case email: //郵箱驗(yàn)證 var emailRule = /^[A-z0-9]+@[a-z0-9]+.com$/; reg("email", emailRule); break; case cellPhone: // 手機(jī)號(hào)驗(yàn)證 var cellPhoneRule = /^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/; reg("cellPhone", cellPhoneRule); break; case identityCard: //身份證號(hào)驗(yàn)證 var identityCardRule = /^([1-9]){1}[0-9]{17}|[1-9]{1}[0-9]{16}(x|X)?$/; reg("identityCard", identityCardRule); break; case site: //地址驗(yàn)證 var siteRule = /^[\u4e00-\u9fa5]+[\u4E00-\u9FA5A-Za-z0-9_]+$/; reg("site", siteRule); break; //設(shè)置特殊情況 default: alert("操作錯(cuò)誤!請(qǐng)關(guān)閉網(wǎng)頁(yè)") break; } } //提交驗(yàn)證判斷是否都符合正則表達(dá)式 function OnClick(){ //獲取所有的span標(biāo)簽 var a = document.getElementsByTagName("span"); var str = ""; //循環(huán)獲取span的內(nèi)容 for (var i = 0; i < a.length; i++) { str+=a[i].innerText; } if(str == "√√√√√√√"){ alert("輸入正確"); }else{ alert("輸入錯(cuò)誤"); } } </script> </body> </html>
js代碼
//輸入框的校驗(yàn) /**輸入框的校驗(yàn) 消息顯示區(qū)域的ID 必須按照eleId+"s" * @param {Object} eleId * @param {Object} rule */ function reg(eleId,rule){ //動(dòng)態(tài)的添加一個(gè)消息顯示標(biāo)簽 var inputValue = document.getElementById(eleId).value; var result = rule.test(inputValue.trim()); if(result && inputValue != ""){ document.getElementById(eleId+"s").innerHTML="√"; document.getElementById(eleId+"s").style.color="green"; }else{ document.getElementById(eleId+"s").innerHTML="×"; document.getElementById(eleId+"s").style.color="red"; } }
補(bǔ)充說(shuō)明
我目前使用的開發(fā)工具是 HBuilder X
代碼風(fēng)格偏向于bootstrap前端框架
有喜歡的朋友可以點(diǎn)擊下方鏈接了解
如果需要我的樣式請(qǐng)導(dǎo)入bootstrap.min.css
總結(jié)
以上所述是小編給大家介紹的JS使用正則表達(dá)式判斷輸入框失去焦點(diǎn)事件,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
JS實(shí)現(xiàn)圖片預(yù)加載無(wú)需等待
網(wǎng)站開發(fā)時(shí)經(jīng)常需要在某個(gè)頁(yè)面需要實(shí)現(xiàn)對(duì)大量圖片的瀏覽;用javascript來(lái)實(shí)現(xiàn)一個(gè)圖片瀏覽器,讓用戶無(wú)需等待過(guò)長(zhǎng)的時(shí)間就能看到其他圖片2012-12-12javascript function(函數(shù)類型)使用與注意事項(xiàng)小結(jié)
這篇文章主要介紹了javascript function(函數(shù)類型)使用與注意事項(xiàng),結(jié)合實(shí)例形式較為詳細(xì)的分析了Function(函數(shù))類型的基本聲明、屬性、方法相關(guān)操作技巧與使用注意事項(xiàng),需要的朋友可以參考下2019-06-06如何利用moment處理時(shí)間戳并計(jì)算時(shí)間的差值
前端很多場(chǎng)景都會(huì)涉及到對(duì)時(shí)間的處理,我所用得最多的庫(kù)是moment,下面這篇文章主要給大家介紹了關(guān)于如何利用moment處理時(shí)間戳并計(jì)算時(shí)間的差值的相關(guān)資料,需要的朋友可以參考下2022-04-04javascript實(shí)現(xiàn)倒計(jì)時(shí)效果
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)倒計(jì)時(shí)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02Javascript 修改String 對(duì)象 增加去除空格功能(示例代碼)
這篇文章主要介紹了Javascript 修改String 對(duì)象 增加去除空格功能(示例代碼)。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-11-11JS動(dòng)態(tài)給對(duì)象添加屬性和值的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇JS動(dòng)態(tài)給對(duì)象添加屬性和值的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10