在平時我們登錄或者注冊時,都會見到要輸入驗證碼的功能,當輸入正確時才可以進行登錄或者注冊,那我們如何使用js來實現(xiàn)一個輸入驗證碼的進行驗證的功能呢。
驗證碼生成的內容都是隨機的,所以需要先獲取一個隨機數(shù),根據(jù)這個隨機數(shù)再去獲取一個隨機的數(shù)字或字母,最后將獲取到的四位隨機數(shù)字或字母組合到一起,就生成了一個隨機的驗證碼。
首先我們先聲明一個字符串,內容為0-9、a-z、A-Z,再完成一個獲取隨機數(shù)的函數(shù)封裝,利用數(shù)學對象的獲取隨機數(shù)方法Math.random(),取一個從0到該字符串長度的隨機數(shù)字。
獲取隨機數(shù)
根據(jù)思路我們先完成一個獲取隨機數(shù)的函數(shù)封裝,利用數(shù)學對象的獲取隨機數(shù)方法Math.random(),得到一個最大值到最小值之間的數(shù)字,最后進行一下取整。
- // 獲取最大值到最小值之間的隨機數(shù)
- function getRandom(min, max) {
- return Math.floor( Math.random() * ( max - min + 1 ) + min );
- }
獲取驗證碼
聲明一個字符串str,內容為0-9、a-z、A-Z,因為接下來驗證碼字符的取值就是在這些字符中進行的取值。調用獲取隨機數(shù)的函數(shù),獲得一個范圍在0到str.length - 1的隨機數(shù)字,以該數(shù)字為下標從字符串str中取出一個字符。假如現(xiàn)在要生成一個四位的隨機驗證碼,我們就通過for循環(huán)來生成四位隨機字符,隨后把這四位隨機字符拼接在一起。把該過程封裝成為一個函數(shù),將驗證碼作為函數(shù)的返回值return出去。
- // 獲取隨機驗證碼
- function getCode() {
- var str = '1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM';
- var code = ''; //驗證碼
- // 循環(huán)生成四位的隨機字符
- for ( var i = 0; i < 4; i++ ) {
- // 獲取一個
- var n = getRandom(0, str.length - 1);
- var s = str[n];
- code += s;
- }
- return code;
- }
在頁面中使用
Html代碼為:
- <input type="text" >
- <span></span>
- <em></em><br>
- <button>驗證</button>
在頁面中進行使用時,首次打開頁面時調用獲取驗證碼的函數(shù),將返回的隨機驗證碼賦值給標簽,點擊標簽時刷新驗證碼,即點擊時再次調用getCode函數(shù),給驗證碼標簽賦值。
點擊驗證按鈕時比較驗證碼標簽和輸入框的內容,不一致時提示輸入錯誤。
js的代碼為:
- window.onload = function () {
- // 獲取標簽
- var oInp = document.getElementsByTagName('input')[0];
- var oSpan = document.getElementsByTagName('span')[0];
- var oBtn = document.getElementsByTagName('button')[0];
- var oMsg = document.getElementsByTagName('em')[0];
- // 初始頁面驗證碼的內容
- oSpan.innerHTML = getCode();
- // 點擊重新生成新的驗證碼
- oSpan.onclick = function() {
- oSpan.innerHTML = getCode();
- }
- // 點擊驗證按鈕進行驗證
- oBtn.onclick = function() {
- // 比較輸入框的內容和驗證碼標簽的內容
- if ( oInp.value == oSpan.innerHTML ) {
- oMsg.innerHTML = '';
- } else {
- // 提示錯誤信息
- oMsg.innerHTML = '驗證碼輸入錯誤';
- }
- }
- }
更多內容
>>本文地址:http://uj2y2uok.com/zhuanye/2021/69055.html
聲明:本站稿件版權均屬中公教育優(yōu)就業(yè)所有,未經許可不得擅自轉載。
1 您的年齡
2 您的學歷
3 您更想做哪個方向的工作?