Js 新手在这里。我不想我的密码至少包含:1个大写字母,1个特殊字符



我希望我的密码至少包含:1个大写字母,1个特殊字符我正在尝试用这个while循环来满足要求。我做错了什么?

const characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ#$!-_";
const capital = /ABCDEFGHIJKLMNOPQRSTUVWXYZ/;
const special = /#$!-_/; 
function PWord (){
let pass = ""
while(!((capital.test(pass)) && (special.test(pass))) ){
for (i=0; i<=11; i++)
{
let rand_char = characters.charAt(Math.floor(Math.random()*characters.length));
pass = pass + rand_char;
}

return pass
}
}
for(let i=0;i<=3;i++){
let ps = PWord();
console.log("Password" + (i+1) + ":" + ps);
}

我在这里看到的主要问题是在while循环中使用returnreturn将始终结束整个函数的执行并返回指定的值。循环中的条件将只检查一次,因为在您返回之前,它将有机会检查并再次运行。试着把这行移出循环。

最新更新