1. 程式人生 > >隨機六位驗證碼(至少包含一個字母和一個數字)

隨機六位驗證碼(至少包含一個字母和一個數字)

	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));
	}