我要求生成一个8位随机密码,该密码必须包含字母(A-Z,a-z,0-9)。我使用以下功能来生成我的密码。它一直在为我工作,一旦我注意到一些密码只是字母,例如" WaIoGarQ"。如何改进我的代码,以确保包括字母和数字。
_makePwd = function () {
var text = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for (var i = 0; i < 8; i++) {
text += possible.charAt(Math.floor(Math.random() * possible.length));
}
return text;
}
非常感谢您的帮助。谢谢。
答案 0 :(得分:1)
你可以使用这样的东西,我考虑过最多4个数字,你可以在letterUsed变量中改变它。您也可以在数组中添加大写字母
function getAlphaNumeric(){
var arr =['a','b', 'c', 'd','e','f','g','h','i', 'j', 'k', 'l', 'm', 'n','o','p','q', 'r','s','t','u','v','w','x','y','z'],
letterUsed=0,numberUsed=0, maxNum =Math.ceil(Math.random()*4), maxLetter = 8-maxNum,i=0, randomStr='';
for(;i<8;i++){
if((Math.floor(Math.random()*2) === 0 && numberUsed <maxNum) || letterUsed>=maxLetter ){
randomStr += Math.floor(Math.random()*10);
numberUsed++;
}else{
randomStr += arr[Math.floor(Math.random()*26)];
letterUsed++;
}
}
return randomStr;
}
getAlphaNumeric();