javascript - 随机密码生成器验证
问题描述
我是在随机密码生成器上使用 JS 编码和工作的新手,需要用户输入来验证至少一个字符。我有提示并确认工作,但不确定如何验证笔记;
我的 if 语句和 for 循环变暗了。当我使用它时,该userSelection
阵列正在工作console.log
。
var upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var lowerCase = "abcdefghijklmnopqrstuvwxyx";
var numbers = "0123456789";
var specialChar = "!@#$%^&*()?/;:~";
//added userSelection & finalPassword var
var userSelection =[];
var finalPassword = [];
//added functions, prompt, console.log
function generatePassword() {
var passLength = prompt("Please insert a number between 8 to 128");
//remember to add a condition where IF the user choose less than 8 or greater than 128 to stop and alert them to follow instruction. Then ask initial question again
if (passLength <8 ) {
alert ("Please insert a number between 8 to 128");
return;
}
if (passLength >128 ) {
alert ("Please insert a number between 8 to 128");
return;
}
//added upperCase/lowerCase confirm var
var upperC = confirm("Would you like Uppercase Letters");
if(upperC) {
userSelection.push(upperCase);
}
var lowerC = confirm("Would you like Lowercase Letters");
if(lowerC) {
userSelection.push(lowerCase);
}
//added remaining specChar and numb var
var specC = confirm("Would you like and Special Characters");
if(specC) {
userSelection.push(specialChar);
}
var numb = confirm("Would you like to add Numbers to your password?");
if(numb) {
userSelection.push(numbers);
}
console.log("user selection = " + userSelection);
//added if statement) NEED definition of what this is doing
if (userSelection.length ===0);
return;
// for loop with random index to create random char
for (var i = 0; i < userSelection; i++) {
var randomIndex = Math.floor(Math.random() * userSelection);
var random = userSelection.charAt(randomIndex);
}
//var math.floor will pick a random index for userSelection array set to var
//math.floor to pick random char --name as var use this to concat
}
解决方案
您的问题在于以下几行:
if (userSelection.length === 0);
return;
我认为您在这里想要做的是在为空return
时退出函数(使用 ) 。userSelection
这几乎是那个的代码......
但是,由于语句行;
末尾有一个分号,因此if
您将代码分成两个单独的语句:
- 如果
userSelection
是空的,什么也不做。 - 退出函数。
要解决此问题,您只需删除分号:
if (userSelection.length === 0)
return;
避免此类问题的一种方法是始终在 if 语句中使用花括号(就像您对其他 if 语句所做的那样):
if (userSelection.length === 0) {
return;
}
推荐阅读
- node.js - node-libxml-xsd 在进行 node-gyp 重建时失败,并显示“...xmljs.node:文件无法识别:文件格式无法识别”
- html - justify-content: flex-start 不工作
- ios - Xcode 错误(无法创建配置文件)
- javascript - 在矩阵中寻找邻居并将其存储
- javascript - 无法在 python Jupyter 笔记本中合并 d3
- python - 将我自己的文件命名为与模块相同的名称后无法导入 Python 模块
- php - Laravel 5.5 通过 gmail 发送电子邮件,从数据库配置
- c++ - 在代码中读取 FILEVERSION 值
- .net - 使用自定义比较设置 ListBox.SelectedItem
- c# - 在实体框架、Webforms 中指定多对多关系