-
Notifications
You must be signed in to change notification settings - Fork 0
/
logic.js
86 lines (74 loc) · 3.17 KB
/
logic.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
var button = document.querySelector('button');
var textArea = document.querySelector('#password-area');
var numbersArray = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
var specialCharactersArray = ['&', '!', '#',
'$', '%', '?', '@',
'+', '<', '>'];
var lowerCaseArray = ['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 uppercaseArray = ['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 password = [];
var possibleCharacters = [];
var passwordFinal = "";
var randomNumber;
button.onclick = function(){
buttonPress()
};
function random(x){
randomNumber = Math.floor(Math.random() * x);
}
function buttonPress (){
var lowerCase = confirm('Does your password need lower case letters?');
var upperCase = confirm('Does your password need upper case letters?');
var specialCharacters = confirm('Does your password need special characters?');
var numbers = confirm('Does your password need numbers?');
var passwordLength = parseInt(prompt('How long would you like your password? (type any number between 8-128'));
if (isNaN(passwordLength) || passwordLength < 8 || passwordLength > 128){
alert('Invalid selection: Please try again, making sure your length is a number between 8-128.');
} else if(lowerCase === false && upperCase === false && specialCharacters === false && numbers === false){
alert('Invalid selection: Please try again, making sure you click "Ok" on at least one class.')
} else {
if (specialCharacters === true){
for (var i = 0; i< specialCharactersArray.length; i++){
possibleCharacters.push(specialCharactersArray[i]);
}
}
if (numbers === true){
for (var i = 0; i< numbersArray.length; i++){
possibleCharacters.push(numbersArray[i]);
}
}
if (lowerCase === true && upperCase === false || lowerCase === true && upperCase === true){
for (var i = 0; i< lowerCaseArray.length; i++){
possibleCharacters.push(lowerCaseArray[i]);
}
}
if (lowerCase === false && upperCase === true){
for (var i = 0; i< lowerCaseArray.length; i++){
possibleCharacters.push(uppercaseArray[i]);
}
}
for(var i = 0; i < passwordLength; i++){
random(possibleCharacters.length);
password.push(possibleCharacters[randomNumber]);
if(upperCase === true && lowerCase === true){
random(2);
if(randomNumber === 1 && isNaN(password[i]) && password[i].length === 1){
password[i] = password[i].toUpperCase();
}
}
}
passwordFinal = password.join('');
textArea.innerHTML = passwordFinal;
};
upperCase = false;
specialCharacters = false;
numbers = false;
upperCase = false;
possibleCharacters = [];
password = [];
passwordFinal = "";
};