隨機六位驗證碼(至少包含一個字母和一個數字)
阿新 • • 發佈:2019-01-28
console.log(ranSixNumLet()) function ranSixNumLet(){ // 定義裝有數字的陣列 var num = []; // 定義裝有字母的陣列 var letter = []; // 定義裝有數字和字母的陣列 var arrAll = []; // 從ascii獲取數字並且加到num陣列 for (var i=48;i<58;i++) { num.push(String.fromCharCode(i)); } // 從ascii獲取字母並且加到letter陣列 for (var j=97;j<123;j++) { letter.push(String.fromCharCode(j)); // 這裡是獲取到的字母進行大寫轉換再加入letter陣列 letter.push(String.fromCharCode(j).toUpperCase()); } // num陣列與letter數組合並並且賦給arrAll arrAll = num.concat(letter); // 定義一個隨機六位數,首先規定首個為數字 // 並且呼叫隨機值函式,範圍是該陣列的長度-1,這裡是數字 var randomArr = num[randomMax_Min(num.length-1)]; // 並且呼叫隨機值函式,範圍是該陣列的長度-1,這裡是字母 randomArr = randomArr + letter[randomMax_Min(letter.length-1)]; // 上面獲取倆位了,這裡迴圈獲取四位 for (var k=0;k<4;k++) { // 並且呼叫隨機值函式,範圍是該陣列的長度-1,這裡是數字和字母 randomArr += arrAll[randomMax_Min(arrAll.length-1)]; } return '你的六位驗證碼(至少包含一個字母和一個數字):'+randomArr; } //打亂陣列 function fixArr(arr){ // 定義一個新的陣列來裝 從舊陣列中獲取的元素 var arrLoad = []; // 定義獲取陣列時的長度 var length = arr.length; // 迴圈剛獲取陣列的長度的次數 for (var i=0;i<length;i++) { // 定義一個獲取陣列長度內的隨機數,這裡因為下面的spice刪除操作, // 必須用arr.length來進行更新陣列長度的變化,如果使用獲取時的 // 固定長度,那麼有可能獲取到undefined,就是陣列已經被刪除的元素的位置 var ran = randomMax_Min(arr.length,0); // 把獲取到的陣列內的元素加到新的陣列來 arrLoad.push(arr[ran]); // 獲取完後進行刪除操作,刪除從第ran個開始,刪除一個 arr.splice(ran,1); } // 返回新的陣列 return arrLoad; } // 隨機數 function randomMax_Min(max,min){ // 如果最小值為空,則返回0 min = min ||0; // 對隨機數的範圍進行四捨五入取整 return Math.round(min+Math.random()*(max-min)); }