日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
手把手教你使用JavaScript實現(xiàn)表單驗證

一、前言

在Web項目開發(fā)中,經(jīng)常會看到表單驗證的功能。例如,用戶注冊、用戶登錄等,需要對用戶填寫的內(nèi)容進行驗證。接下來,小編帶著大家一起來實現(xiàn)表單驗證的用戶名、密碼、性別、手機號碼、郵箱驗證的功能。

創(chuàng)新互聯(lián)專注于西華企業(yè)網(wǎng)站建設(shè),響應式網(wǎng)站設(shè)計,商城網(wǎng)站開發(fā)。西華網(wǎng)站建設(shè)公司,為西華等地區(qū)提供建站服務。全流程定制網(wǎng)站設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務

二、項目準備

開發(fā)工具:HBuilderX

瀏覽器:Google Chrome瀏覽器

三、項目目標

1.了解什么是正則表達式。

2.掌握正則表達式的語法。

3.學會應用正則表達式。

四、項目實現(xiàn)

HTML

 
 
 
 
  1.  
  2.             

    歡迎注冊

    已有賬號?登錄

 
  •              
  •                  
  •                      
  •                         
  •  
  •                             
  •  
  •                             
  •  
  •                             
  •  
  •                         
  •  
  •                         
  •  
  •                             
  •  
  •                             
  •  
  •                             
  •  
  •                         
  •  
  •                         
  •  
  •                             
  •  
  •                             
  •  
  •                             
  •  
  •                         
  •  
  •                         
  •  
  •                             
  •  
  •                             
  •  
  •                             
  •  
  •                         
  •  
  •                         
  •  
  •                             
  •  
  •                             
  •  
  •                             
  •  
  •                         
  •  
  •                         
  •  
  •                             
  •  
  •                             
  •  
  •                             
  •  
  •                         
  •  
  •                     
  • 用戶名稱:  
  •                                  
  •                             
  •  
  •                                 
     
  •                             
  • 密  碼:  
  •                                 
     
  •                             
  • 確認密碼:  
  •                                 
     
  •                             
  • 性  別: 男   
  •                                 
  •  
  •                                 
     
  •                             
  • 手機號碼:  
  •                                 
     
  •                             
  • 電子郵箱:  
  •                                 
     
  •                             
  •  
  •                      
  •                         注冊 
  •                     
  •  
  •                  
  •             
  •  
  •         
  •  

    在上面代碼中,使用table標簽元素表示定義一個HTML表格,tr表示表格中的行,td表示表格中的列。name表示獲取對應文本的正則規(guī)則驗證,placeholder屬性表示提示信息。

    JavaScript

    1.添加事件

     
     
     
     
    1. // 獲取所有input框 
    2.         var inputs = document.getElementsByTagName('input'); 
    3.         // 為每個input框添加失去焦點事件 
    4.         for (var i = 0; i < inputs.length; i++) { 
    5.             inputs[i].onblur = inputBlur; 
    6.         } 

    在上面代碼中,首先是獲取用戶注冊頁面所有的input元素,為每個input框添加失去焦點事件,利用for循環(huán)來添加事件處理函數(shù)inputBlur()。

    2.寫inputBlur()事件處理函數(shù),該函數(shù)主要用于獲取相應input元素的驗證規(guī)則和提示信息,用戶輸入的內(nèi)容進行檢驗,之后,把檢驗的結(jié)果顯示在HTML頁面中,代碼如下所示:

     
     
     
     
    1. function inputBlur() { 
    2.             // 獲取輸入框的name值、value值、框中的提示信息 
    3.             var name = this.name;            
    4.             var val = this.value;  
    5.             var display = this.placeholder;    
    6.             var display_obj = this.parentNode.parentNode.children[2].children[0];  //顯示提示信息 
    7.             //去掉兩端空格 
    8.             val = val.trim(); 
    9.             //判斷內(nèi)容為空,顯示提示信息 
    10.             if (!val) { 
    11.                 error(display_obj, '輸入框內(nèi)容不能為空'); 
    12.                 return false; 
    13.             } 
    14.             //獲取正則匹配規(guī)則和提示信息 
    15.             var reg_msg = getRegMsg(name, display); 
    16.             //檢測是否正則匹配 
    17.             if (reg_msg['reg'].test(val)) { 
    18.                 // 匹配成功 
    19.                 success(display_obj, reg_msg['msg']['success']); 
    20.             } else { 
    21.                 // 匹配失敗 
    22.                 error(display_obj, reg_msg['msg']['error']); 
    23.             } 
    24.         } 

    在上面代碼中,變量名name、val、tips分別是獲取input元素中的name、value、placeholder屬性的值。

    變量名tips_obj用于當input元素失去焦點的時候,顯示提示信息。

    val.trim()方法主要是用戶輸入內(nèi)容中兩端空格。

    getRegMsg()自定義函數(shù)用來獲取文本框中相對應的正則和提示信息。

    test()方法用于獲取當前input框輸入的內(nèi)容是否是正則匹配的模式,如果是則返回true,顯示驗證成功的信息。如果不是則返回false,顯示錯誤的信息。

    3.編寫error()和success()函數(shù)分別用于驗證錯誤信息、成功信息

     
     
     
     
    1. // 成功 
    2.         function success(obj, msg) { 
    3.             obj.className = 'success'; 
    4.             obj.innerHTML = msg; 
    5.         } 
    6.  
    7.         // 失敗 
    8.         function error(obj, msg) { 
    9.             obj.className = 'error'; 
    10.             obj.innerHTML = msg + ',請重新輸入'; 
    11.         } 

    在上面代碼中,obj參數(shù)表示顯示提示信息的元素對象,msg參數(shù)表示自定義的錯誤信息。

    4.獲取驗證規(guī)則和提示信息getRegMsg()函數(shù)

    項目分析

    ① 用戶名:長度4~12,英文大小寫字母。

    正則:/^[a-zA-Z]{4,12}$/。

    ② 密碼:長度6~20,大小寫字母、數(shù)字或下劃線。

    正則:/^.{6,20}$/。

    ③ 確認密碼:要求與密碼框一樣,且兩次輸入相同。

    正則:RegExp(‘^’ + 密碼框的值 + '$')

    ④ 性別:

    正則:/^[0-1]*$/。

    ⑤ 手機號碼:13、14、15、17、18開頭的11位手機號。

    正則:/^1[34578]\d{9}$/。

    ⑥郵箱:用戶名@域名(域名后綴至少2個字符)。

    正則:/^(\w+(_|-|.)*)+@(\w+(-)?)+(.\w{2,})+$/。

    代碼如下所示:

     
     
     
     
    1. function getRegMsg(name, display) { 
    2.             var reg = msg = ''; 
    3.             switch (name) { 
    4.                 case 'user': 
    5.                     reg = /^[a-zA-Z]{4,12}$/; 
    6.                     msg = {'success': '用戶名輸入正確', 'error': display}; 
    7.                     break; 
    8.                 case 'passWord': 
    9.                     reg = /^.{6,20}$/; 
    10.                     msg = {'success': '密碼輸入正確', 'error': display}; 
    11.                     break; 
    12.                 case 'repassWord': 
    13.                     var con = document.getElementsByTagName('input')[1].value; 
    14.                     reg = RegExp("^" + con + "$"); 
    15.                     msg = {'success': '兩次密碼輸入正確', 'error': '兩次輸入的密碼不一致'}; 
    16.                     break; 
    17.                 case 'sex': 
    18.                     reg = /^[0-1]*$/; 
    19.                     msg = {'success': '性別已選擇', 'error': '性別不能為空'}; 
    20.                     break; 
    21.                 case 'telephone':  
    22.                     reg=/^1[34578]\d{9}$/; 
    23.                     msg = {'success': '手機號碼輸入正確', 'error': display}; 
    24.                     break; 
    25.                 case 'email': 
    26.                     reg = /^(\w+(\_|\-|\.)*)+@(\w+(\-)?)+(\.\w{2,})+$/; 
    27.                     msg = {'success': '郵箱輸入正確', 'error': display}; 
    28.                     break; 
    29.             } 
    30.             return {'reg': reg, 'msg': msg}; 
    31.         } 

    在上面代碼中, "/^[a-zA-Z]{4,12}$/"表示匹配只包含大小寫的英文字母;

    "/^.{6,20}$/"表示匹配由大小寫英文字母、數(shù)字或下劃線長度在6-20范圍內(nèi);

    "RegExp("^" + con + "$")"表示獲取用戶輸入的密碼,把它作為檢驗確認密碼是否正確的正則匹配模式;

    " /^[0-1]*$/"表示數(shù)字1為男,數(shù)字0為女;

    "/^1[34578]\d{9}$/"表示11位數(shù)的手機號碼,以1開頭,第二個數(shù)字可以是(3、4、5、7、8)其中的一個數(shù)字,剩下數(shù)字可以0-9之間任意數(shù)字;

    "/^(\w+(_|-|.)*)+@(\w+(-)?)+(.\w{2,})+$/"表示匹配郵箱地址,它有三部分,分別是用戶名、”@“、郵箱域名。

    效果圖如下所示:

    本文案例參考《JavaScript前端開發(fā)案例教程》,黑馬程序員編著

    五、總結(jié)

    1.本文基于JavaScript基礎(chǔ),實現(xiàn)表單驗證的功能。對每一個div層、table、tr、td標簽元素進行詳解,讓讀者更好的理解。

    2.在JavaScript中首先是表單項添加失去焦點處理,事件處理函數(shù)為inputBlur()。該函數(shù)用于獲取表單name、value及提示信息后,去除空白后,若內(nèi)容為空調(diào)用error()給出提示,否則進行驗證。

    3.代碼沒有那么復雜,希望對你有所幫助!


    網(wǎng)頁標題:手把手教你使用JavaScript實現(xiàn)表單驗證
    URL鏈接:http://www.5511xx.com/article/cddpgoc.html