用js为用户生成一个至少要含一个大写字母、一个小写字母、一个特殊字符、一个数字的8位初始密码,注:特殊字符包括:!@#$%&*_=+-/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| function shuffle(arr) { var cur = arr.length, tmp, r; while (0 !== cur) { r = Math.floor(Math.random() * cur); cur -= 1; tmp = arr[cur]; arr[cur] = arr[r]; arr[r] = tmp; } return arr; } function rand(str) { return str[Math.floor(Math.random() * str.length)]; } function randomPwd(length, chars) { const masks = [ 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', '0123456789', '!@#$%^&*_=+-/' ]; let result = masks.map(rand).join(''); const mask = masks.join(''); for (var i = length - 4; i > 0; --i) { result += rand(mask) } return shuffle(result); }
|