-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
125 lines (99 loc) · 4.06 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
// Assignment Code
var generateBtn = document.querySelector("#generate");
// add variables
var lower = ["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"];
var upper = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","W","X","Y","Z"];
var numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
var symbol = ["!","@","#","$","%","^","&","*","(",")","{","}","|","[","]",";","'",":","<",">","?","/"];
// Add event listener to generate button
generateBtn.addEventListener("click", writePassword);
// Write password to the #password input
function writePassword() {
// prompt for insert a number between 8 and 128 for the length of password
var passLength = parseInt(prompt("How many characters you want for your password?" +'\n Your password must be between 8 and 128 characters.'));
console.log(passLength);
// If number is less than 8 or greater than 128, a string or NaN, user is asked for isert again
while (passLength < 8 || passLength > 128 || typeof(passLength) != "number" || passLength === NaN || passLength === null) {
alert('Please choose a valid number between 8 and 128');
passLength = parseInt(prompt("How many characters you want for your password?" +'\n Your password must be between 8 and 128 characters.'));
}
if (passLength) {
var includeLower = confirm('Would you add lowercase letters?');
var includeUpper = confirm('Would you add uppercase letters?');
var includeNumber = confirm('Would you add numbers?');
var includeSymbol = confirm('Would you add symbols?');
// if users do not choose any criteria
while (!includeLower && !includeUpper &&
!includeNumber && !includeSymbol) {
alert ('You must choose a criteria!');
includeLower = confirm('Would you add lowercase letters?');
includeUpper = confirm('Would you add uppercase letters?');
includeNumber = confirm('Would you add numbers?');
includeSymbol = confirm('Would you add symbols?');
}
var choices;
//choosing all criteria
if (includeLower && includeUpper &&
includeNumber && includeSymbol) {
choices = lower.concat(upper, numbers, symbol);
}
// choosing 3 criteria
else if (includeLower && includeUpper && includeNumber) {
choices = lower.concat (upper, numbers);
}
else if (includeLower && includeUpper && includeSymbol) {
choices = lower.concat(upper, symbol);
}
else if (includeLower && includeNumber && includeSymbol) {
choices = lower.concat(numbers, symbol);
}
else if (includeUpper && includeNumber && includeSymbol) {
choices = upper.concat(numbers,symbol);
}
// choosing 2 criteria
else if (includeLower && includeUpper) {
choices = lower.concat(upper);
}
else if (includeLower && includeNumber) {
choices = lower.concat(numbers);
}
else if (includeLower && includeSymbol) {
choices = lower.concat(symbol);
}
else if (includeUpper && includeNumber) {
choices = upper.concat(numbers);
}
else if (includeUpper && includeSymbol) {
choices = upper.concat(symbol);
}
else if (includeNumber && includeSymbol) {
choices = numbers.concat(symbol);
}
// choosing one criteria
else if (includeLower) {
choices = (lower);
}
else if (includeUpper) {
choices = (upper);
}
else if (includeNumber) {
choices = (numbers);
} else if (includeSymbol) {
choices = (symbol);
};
var password = [];
// loop for random values
for (var i = 0; i < passLength; i++) {
var passChoices = choices[Math.floor(Math.random() * choices.length)];
password.push(passChoices);
}
// convert the elements of password array into a string
var finalPs = password.join(""); // using W3school website
UserInput(finalPs);
return finalPs;
}
}
// get the text content of password (Final password will be shown inside the dashed box)
function UserInput(finalPs) {
document.getElementById("password").textContent = finalPs; // using W3school website
}