JavaScript表單及正則表達式驗證實例代碼
今天我要介紹的是在JavaScript中關于表單驗證內(nèi)容的知識點介紹:
關于表單驗證,我接下來則直接將內(nèi)容以及效果顯示出來并作注解,這樣可以清晰看見這個表達驗證的妙用:
<form id="ff" action="https://www.baidu.com"> <h1>用戶登錄</h1> 賬號:<input type="text" id="zh" /> <span></span> <br /> 密碼:<input type="password" id="mm" /><span></span> <br /> <Button>登錄</Button> </form>
效果:
注:可以看到這是一個非常經(jīng)典的登錄界面的制作,下面我會逐一介紹他們內(nèi)部的方法使用以及代碼顯示的效果;
onclick: 點擊事件 //ondblclick: 雙擊事件 // onsubmit: 表單提交事件 // onblur: 失去焦點事件 // onfocus: 獲取焦點事件。
注: 這是事件點擊使用的方法代碼;
表單提交的代碼演示:
document.getElementById('ff(自定義)').onsubmit = function() { console.log('觸發(fā)了onsubmit'); // 獲取表單中的賬號和密碼 let zh = document.getElementById("zh").value; let mm = document.getElementById("mm").value; // 判斷賬號及密碼是否為空 if (zh.length == 0 || mm.length == 0) { alert('請輸入正確的賬號或密碼') // 自定義彈出框 document.querySelector('.mask').style.display = "block"; return false; } // 以下結果為true 表允許表單提 //交到指定頁面,反之則不能,且只能實現(xiàn)所輸入的結果 return true; }
注:{ return false }為阻止表單提交,但如果整體代碼無錯,{ return true }則通過,提交表單。
效果:
賬號和密碼獲取/失去焦點演示:
// 賬號獲取焦點事件 document.getElementById('zh').onfocus = function() { // let = zh = this.value; this.nextElementSibling.innerHTML = ""; } // 賬號失去焦點事件 document.getElementById('zh').onblur = function() { let = zh = this.value; let f = zh.length == 0; console.log(zh); this.nextElementSibling.innerHTML = f ? "×" : "√"; // this.nextElementSibling.style.display=f?"block":"none"; } // 密碼獲取焦點事件 document.getElementById('mm').onfocus = function() { // let = zh = this.value; this.nextElementSibling.innerHTML = ""; } // 密碼失去焦點事件 document.getElementById('mm').onblur = function() { let = zh = this.value; let f = zh.length == 0; console.log(zh); this.nextElementSibling.innerHTML = f ? "×" : "√"; // this.nextElementSibling.style.display=f?"block":"none"; }
注:注意看賬號和密碼的代碼格式內(nèi)容,兩者設置的自定義不同,并非全部都是一樣
效果:
密碼:
注:當內(nèi)容存在焦點時則有判斷,有內(nèi)容則成立,無內(nèi)容則錯誤,不成立,無法進行表單提交
正則表達式:
<!-- 正則表達式是用于對數(shù)據(jù)格式進行判斷 --> <!-- 定義正則表達式: var rex = /^\d$\(\d表0-0的數(shù)字) --> <!-- 1.內(nèi)容(以\開頭) --> <!-- \d:表0-9的數(shù)字 --> <!-- \w:表0-9a-zA-Z_ --> (非:不是,表示否定之意,這里注意) <!-- \D:表非0-9的數(shù)字 --> <!-- \W:表非0-9a-zA-Z --> <!-- .表任意一個單個字符 --> <!-- 2.字符出現(xiàn)速度 --> <!-- ?表0 or 一次 --> <!-- +表一次或者多次 --> <!-- *表0此或多次 --> <!-- \d{5}表五個數(shù)字 --> <!-- \d{5,10}表至低五個,至高十個 -->
例:
// 例一: var rex = /^[A-Z]{1}\w{5,11}$/ console.log(rex.test('Zking1234'));
效果:
注:開頭小寫不成立,不滿足;
例:
// // QQ號案例 1184995259@qq.com var rex1 = /^\d{5,12}@qq.com$/ console.log(rex.test('1136889226@qq.com'));
注:后面的 @qq.com 為固定值
以正則表達式為方法的登錄界面:
注:(效果與表單驗證同理,但是在其基礎上用正則表達式的方式進行使用。)
<form id="ff" action=""> <h1>用戶登錄</h1> 賬號:<input type="text" id ="zh" /> <span></span> <br /> 密碼:<input type="text" id="mm" /><span></span> <br /> <Button>登錄</Button> </form> <input type="text" id ="mm1" /><span></span> document.getElementById("ff").onsubmit=function(){ // 定義賬號的驗證規(guī)則 var rex1 = /^[a-z]{5,10}$/ // 定義密碼 var rex2 = /^[a-z0-9A-Z.]{5,10}$/ var username = rex1.test(zh.value); console.log(usernam); if(username){ zh.nextElementSibling.style="color:blue"; zh.nextElementSibling.innerHTML="對"; }else{ zh.nextElementSibling.style="color:green"; zh.nextElementSibling.innerHTML="錯"; } var password = rex2.test(mm.value); console.log(password); if(password){ mm.nextElementSibling.style="color:blue"; mm.nextElementSibling.innerHTML="對"; }else{ mm.nextElementSibling.style="color:green"; mm.nextElementSibling.innerHTML="錯"; } return username&&password; }
注:關鍵點:return username&&password;
效果:
注:未輸入內(nèi)容時的效果;
注:輸入內(nèi)容與為輸入內(nèi)容時的對照。
密碼安全級別強度驗證:
document.getElementById('mm1').onkeyup=function(){ let c = 0; var rex1 = /^.*\d.*$/; //包含數(shù)字 var rex2 = /^.*[a-z].*$/; //包含字母 var rex3 = /^.*[A-Z].*$/; //包含大寫字母 var rex4 = /^.*[@.].*$/; //包含特殊符號 let m = this.value; if(rex1.test(m)){ c++; } if(rex2.test(m)){ c++; } if(rex3.test(m)){ c++; } if(rex4.test(m)){ c++; } let arr=['弱','中等','強','超強'] if(m.length==0){ this.nextElementSibling.innerHTML=""; }else{ this.nextElementSibling.innerHTML=arr[c-1]; } }
效果:
釋義:
let arr=['弱','中等','強','超強'] if(m.length==0){ this.nextElementSibling.innerHTML=""; }else{ this.nextElementSibling.innerHTML=arr[c-1]; 《== }
注:c-1 :由強至弱反向,由弱至強正向,
總結:希望本篇有關于JavaScript表單驗證和正則表達式的知識點內(nèi)容能對你帶來一定的幫助,同時非常感謝各位大佬們的點贊與支持,咱們下一篇不見不散。
總結
到此這篇關于JavaScript表單及正則表達式驗證的文章就介紹到這了,更多相關JS表單及正則表達式驗證內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
js實現(xiàn)文本框中輸入文字頁面中div層同步獲取文本框內(nèi)容的方法
這篇文章主要介紹了js實現(xiàn)文本框中輸入文字頁面中div層同步獲取文本框內(nèi)容的方法,實例分析了javascript操作dom元素的技巧,需要的朋友可以參考下2015-03-03代碼短小的js div層拖動實現(xiàn)代碼[兼容IE與Firefox]
代碼短小的js div層拖動實現(xiàn)代碼[兼容IE與Firefox],需要的朋友可以參考下.2010-05-05分離與繼承的思想實現(xiàn)圖片上傳后的預覽功能:ImageUploadView
本文要介紹的是網(wǎng)頁中常見的圖片上傳后直接在頁面生成小圖預覽的實現(xiàn)思路,考慮到該功能有一定的適用性,于是把相關的邏輯封裝成了一個ImageUploadView組件,實際使用效果可查看下一段的git效果圖2016-04-04理解Javascript_11_constructor實現(xiàn)原理
在理解了'對象模型'后,我們就可以看一下constructor屬性是如何實現(xiàn)的.2010-10-10JavaScript 實現(xiàn)日期時間轉(zhuǎn)時間戳
這篇文章主要介紹了JavaScript 實現(xiàn)日期時間轉(zhuǎn)時間戳,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-08-08