JavaScript表單及正則表達式驗證實例代碼
今天我要介紹的是在JavaScript中關(guān)于表單驗證內(nèi)容的知識點介紹:
關(guān)于表單驗證,我接下來則直接將內(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;
}
// 以下結(jié)果為true 表允許表單提
//交到指定頁面,反之則不能,且只能實現(xiàn)所輸入的結(jié)果
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)容,兩者設(shè)置的自定義不同,并非全部都是一樣
效果:

密碼:

注:當(dāng)內(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 為固定值
以正則表達式為方法的登錄界面:
注:(效果與表單驗證同理,但是在其基礎(chǔ)上用正則表達式的方式進行使用。)
<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;
}注:關(guān)鍵點: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 :由強至弱反向,由弱至強正向,
總結(jié):希望本篇有關(guān)于JavaScript表單驗證和正則表達式的知識點內(nèi)容能對你帶來一定的幫助,同時非常感謝各位大佬們的點贊與支持,咱們下一篇不見不散。
總結(jié)
到此這篇關(guān)于JavaScript表單及正則表達式驗證的文章就介紹到這了,更多相關(guān)JS表單及正則表達式驗證內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決bootstrap中modal遇到Esc鍵無法關(guān)閉頁面
Bootstrap,來自 Twitter,是目前最受歡迎的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的,它簡潔靈活,使得 Web 開發(fā)更加快捷。不過在使用的過程中,我們還是會遇到各種小問題,今天我們探討的就是個人在使用中遇到的一個小BUG的修復(fù)。2015-03-03
javascript 循環(huán)調(diào)用示例介紹
循環(huán)調(diào)用,如果已經(jīng)獲取到了結(jié)果,則退出循環(huán),下面有個不錯的示例,感興趣的朋友可以嘗試操作下2013-11-11
JavaScript Math對象和調(diào)試程序的方法分析
這篇文章主要介紹了JavaScript Math對象和調(diào)試程序的方法,結(jié)合實例形式分析了javascript中Math對象生成隨機數(shù)以及使用alert()、console.log()函數(shù)進行錯誤調(diào)試相關(guān)操作技巧,需要的朋友可以參考下2019-05-05
js利用prototype調(diào)用Array的slice方法示例
這篇文章主要介紹了如何利用js的prototype調(diào)用Array的slice方法,需要的朋友可以參考下2014-06-06
JavaScript使用docx-preview和mammoth預(yù)覽Docx
這篇文章主要為大家詳細介紹了兩個庫,即docx-preview和mammoth,利用它們,你就能在瀏覽器中完美預(yù)覽 Word 文檔,甚至連表格樣式,頁眉頁腳都原汁原味地呈現(xiàn)出來,下面我們來看看具體使用步驟吧2025-04-04

