javascript之随机密码[必包含大写,小写,数字]

js取两个数字之间的随机数:

parseInt(Math.random()*(上限-下限+1)+下限)

如:取1-10之间的随机数   parseInt(Math.random()*(10-1+1)+1)。

随机数介绍完成,下面粘贴随机密码算法(仅供参考):

 1 /**
 2  * 2016年9月6日
 3  * 生成随机密码,必包含大写小写数字-linx
 4  * @param length,生成随机密码长度
 5  * @param arr,生成密码字符串数组,默认大写,小写,数字
 6  * @return 返回生成的密码字符串
 7  */
 8 function randPassword(length, passwordArray) {
 9     length = length || 6;
10     // 密码串----默认 大写字母 小写字母 数字
11     passwordArray = passwordArray || ['ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz', '1234567890'];
12     var password = '';
13     // 随机生成开始字符串
14     var startIndex = parseInt(Math.random() * (length));
15     var randIndex = [];
16     for (var i = 0; i < length; i++) {
17         // 创建数组,用于取随机位置  [0,1,2,3,4,5,....]
18         randIndex.push(i);
19     }
20     for (var i = 0; i < length; i++) {
21         // 根据随机数组生成随机位置
22         var r = parseInt(Math.random() * (randIndex.length));
23         var num = randIndex[r] + startIndex;
24         // 根据随机值取余数
25         var randRemainder = num % passwordArray.length;
26         // 当前密码串【大写字母,小写字母,数字等】
27         var currentPassword = passwordArray[randRemainder];
28         // 根据当前密码串长度取随机数
29         var index = parseInt(Math.random() * (currentPassword.length));
30         // 获取随机字符串
31         var str = currentPassword.substr(index, 1);
32         // 删除随机数组中已经使用的值
33         randIndex.splice(r, 1);
34         password += str;
35     }
36     return password;
37 }
38 console.log('生成的密码:', randPassword(6));

欢迎大侠提出跟简单的算法。

posted @ 2016-09-06 10:41  极·简  Views(1527)  Comments(0Edit  收藏  举报