Javascript 随机密码生成器
我试图生成一个随机密码与以下代码,我有。当我运行它时,我没有定义 我的“未定义”来自哪里**Javascript 随机密码生成器,javascript,Javascript,我试图生成一个随机密码与以下代码,我有。当我运行它时,我没有定义 我的“未定义”来自哪里** ``` //分配代码 var charString = ["ABCDEFGHIJKLMNOPQRSTUVWXYZ", "abcdefghijklnmopqrstuvwxyz", "0123456789", "~!@#$%^&*()-_=+"]; var userInput = []; var p
```
//分配代码
var charString = ["ABCDEFGHIJKLMNOPQRSTUVWXYZ", "abcdefghijklnmopqrstuvwxyz", "0123456789",
"~!@#$%^&*()-_=+"];
var userInput = [];
var password = "";
var generateBtn = document.querySelector("#generate");
// Write password to the #password input
function writePassword() {
password = generatePassword();
var passwordText = document.querySelector("#password");
passwordText.value = password;
}
// Character length prompt
function generatePassword() {
var characterLength = 0
while ((characterLength < 8 || characterLength > 128) || Number.isInteger(characterLength) ===
false) {
characterLength = parseInt(prompt("How many characters would you like your password to be? (8-
128)"));
}
var upper = false
var lower = false
var number = false
var symbol = false
while (!upper && !lower && !number && !symbol) {
// Uppercase pop up
upper = confirm("Click OK to confirm uppercase characters");
// Lowercase pop up
lower = confirm("Click OK to confirm lowercase characters");
// Numeric pop up
number = confirm("Click OK to confirm numeric characters");
// Special charcter pop up
symbol = confirm("Click OK to confirm special characters (~!@#$%^&*()-_=+)");
}
if (upper) {
userInput += charString[0];
}
if (lower) {
userInput += charString[1]
}
if (number) {
userInput += charString[2]
}
if (symbol) {
userInput += charString[3]
}
var password = "";
for (var i = 1; i <= userInput.length; i++) {
var index = (Math.floor(Math.random) * userInput);
password = password + userInput[index]
}
return password
}
// Add event listener to generate button
generateBtn.addEventListener("click", writePassword);
```
var charString=[“abcdefghijklmnopqrstuvxyz”,“abcdefghijklnmopqrstuvwxyz”,“0123456789”,
"~!@#$%^&*()-_=+"];
var userInput=[];
var password=“”;
var generateBtn=document.querySelector(“#generate”);
//将密码写入#密码输入
函数writePassword(){
密码=generatePassword();
var passwordText=document.querySelector(“密码”);
passwordText.value=密码;
}
//字符长度提示
函数generatePassword(){
变量characterLength=0
而((characterLength<8 | | characterLength>128)| | Number.isInteger(characterLength)==
(错误){
characterLength=parseInt(提示(“您希望密码包含多少个字符?”(8-
128)"));
}
var上限=假
var lower=false
var编号=false
var symbol=false
而(!upper&&!lower&&!number&&!symbol){
//大写弹出框
upper=确认(“单击确定确认大写字符”);
//小写弹出框
lower=确认(“单击确定确认小写字符”);
//数字弹出窗口
数字=确认(“单击确定确认数字字符”);
//特殊字符弹出窗口
symbol=确认(“单击“确定”确认特殊字符(~!@$%^&*()-\)”;
}
如果(上){
userInput+=charString[0];
}
如果(较低){
userInput+=字符串[1]
}
如果(数字){
userInput+=charString[2]
}
如果(符号){
userInput+=charString[3]
}
var password=“”;
对于(变量i=1;i变化
到
我修复了您的代码,并在代码片段中进行了一些观察
//分配代码
var charString=[“ABCDEFGHIJKLMNOPQRSTUVWXYZ”,“abcdefghijklnmopqrstuvwxyz”,“0123456789”,“~!@$%^&*()-\=+”];
var userInput=[];
var password=“”;
var generateBtn=document.querySelector(“#generate”);
//将密码写入#密码输入
函数writePassword(){
密码=generatePassword();
var passwordText=document.querySelector(“密码”);
passwordText.value=密码;
}
//字符长度提示
函数generatePassword(){
变量characterLength=0
while((characterLength<8 | | characterLength>128)| | Number.isInteger(characterLength)==false){
characterLength=parseInt(提示(“您希望密码包含多少个字符?(8-128)”);
}
var上限=假
var lower=false
var编号=false
var symbol=false
而(!upper&&!lower&&!number&&!symbol){
//大写弹出框
upper=确认(“单击确定确认大写字符”);
//小写弹出框
lower=确认(“单击确定确认小写字符”);
//数字弹出窗口
数字=确认(“单击确定确认数字字符”);
//特殊字符弹出窗口
symbol=确认(“单击“确定”确认特殊字符(~!@$%^&*()-\)”;
}
//userInput是一个数组,因此您应该将值推入其中。
如果(上){
push(charString[0]);
}
如果(较低){
userInput.push(字符串[1])
}
如果(数字){
userInput.push(字符串[2])
}
如果(符号){
userInput.push(字符串[3])
}
var password=“”;
//将所有数组元素合并为一个数组元素,然后按顺序拆分
//获取字符数组的步骤
userInput=userInput.join(“”).split(“”);
//应该在位置0而不是1处开始for语句
//我猜它应该小于characterLength,而不是userInput.length
对于(变量i=0;i
生成
我对您的类型选择进行了一些更改,以避免出现无限循环。您的问题是随机生成索引。现在开始:
var charString=[“abcdefghijklmnopqrstuvxyz”,“abcdefghijklnmopqrstuvwxyz”,“0123456789”,
"~!@#$%^&*()-_=+"];
var userInput=“”;
var password=“”;
var generateBtn=document.querySelector(“#generate”);
//将密码写入#密码输入
函数writePassword(){
var passwordText=document.querySelector(“密码”);
密码=generatePassword();
passwordText.value='';//清除上一个值
passwordText.value=密码;
}
//字符长度提示
函数generatePassword(){
变量characterLength=0
而((characterLength<8 | | characterLength>128)| | Number.isInteger(characterLength)==
(错误){
characterLength=parseInt(提示(`您希望密码包含多少个字符?(8
128)`));
}
var上限=假
var lower=false
var编号=false
var symbol=false
while(true){
//大写弹出框
upper=确认(“单击确定确认大写字符”);
//小写弹出框
lower=确认(“单击确定确认小写字符”);
//数字弹出窗口
数字=确认(“单击确定确认数字字符”);
//特殊字符弹出窗口
symbol=确认(“单击“确定”确认特殊字符(~!@$%^&*()-\)”;
打破
}
console.log('使用上限',上限);
console.log(‘使用较低的’,较低的);
console.log('使用编号',编号);
console.log('使用符号',符号);
上限&(userInput+=charString[0])
下限&(userInput+=charString[1])
数字&(userInput+=charString[2])
符号&(userInput+=charString[3])
var passwor
var index = (Math.floor(Math.random) * userInput);
var index = (Math.floor(Math.random() * userInput.length));