Javascript 当某个条件的答案不可接受时,如何为提示创建循环?
所以我一直在做一个密码生成器,除了两件事之外,我还有它的工作。密码长度必须在8-128个字符之间。我有一个提示,询问用户希望密码的长度,然后还有一些其他提示,包括符号、大写、小写和数字。但是,当用户回答低于8或高于128的任何问题时,我希望警告说“密码长度必须至少为8个字符且短于128”,然后返回提示,再次询问他们希望密码的长度 我一辈子都不知道该怎么做。对我来说,最明显的解决方案是一个while循环,但是我没有构建这些循环的经验 我还希望在“确认”系统结束之前至少选择一种字符类型,并循环回确认的开头,以确定大写、小写、符号和数字,因此用户必须至少选择一种 任何帮助都将不胜感激 谢谢大家! 下面是密码长度的代码Javascript 当某个条件的答案不可接受时,如何为提示创建循环?,javascript,loops,while-loop,prompt,confirm,Javascript,Loops,While Loop,Prompt,Confirm,所以我一直在做一个密码生成器,除了两件事之外,我还有它的工作。密码长度必须在8-128个字符之间。我有一个提示,询问用户希望密码的长度,然后还有一些其他提示,包括符号、大写、小写和数字。但是,当用户回答低于8或高于128的任何问题时,我希望警告说“密码长度必须至少为8个字符且短于128”,然后返回提示,再次询问他们希望密码的长度 我一辈子都不知道该怎么做。对我来说,最明显的解决方案是一个while循环,但是我没有构建这些循环的经验 我还希望在“确认”系统结束之前至少选择一种字符类型,并循环回确认
var passLength;
while (passLength >= 129 || passLength <= 7) {
passLength = parseInt(prompt('How many charcters would you like? (8-128)'))
if (passLength <= 128 || passLength >= 8) {
break;
}
alert("Password length must be 8 to 128 characters long!");
}
您的长度检查有错误。在这种情况下,您不能使用
|
,因为您希望检查下限和上限是否都有效,因此&&
对于问题循环,您可以使用while(true)
循环,一旦您完成了问题,即案例中的配置,您就可以中断
我使用一个对象以默认值存储配置值。也可以使用数组。但是,您必须以某种方式管理索引
const TYPE\u NUMBER=0;
const TYPE_BOOLEAN=1;
常量类型_字符串=2;
常量配置={
蓝:8,
upc:错,
洛克:错,
num:错,
赛姆:错
};
while(true){
const len=ask('您想要多少个字符?(8-128)',键入\ u编号);
如果(len=8){
config.len=len;break;
}否则{
警报(“密码长度必须为8到128个字符!”);
}
}
const upc=ask('您想使用大写字母吗?',键入布尔值);
如果(upc){config.upc=upc;}
// ... 对其他问题重复相同的步骤。。。
console.log(config);
函数询问(消息,类型){
让结果;
if(type==type\u BOOLEAN){
结果=确认(msg);
}else if(类型===类型编号){
结果=parseInt(提示符(msg));
}else if(type==type\u字符串){
结果=提示(msg);
}否则{
结果=”;
}
返回结果;
}
var chosenCharactersArr = []
var passwordstring = ''
if (confirm('would you like Capital letters?')) {
chosenCharactersArr.push(upperCase)
}
if (confirm('would you like to include lowercase letters?')) {
chosenCharactersArr.push(lowerCase)
}
if (confirm('would you like to include numbers?')) {
chosenCharactersArr.push(numbers)
}
if (confirm('would you like to include symbols?')) {
chosenCharactersArr.push(symbols)
}