-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
52 lines (44 loc) · 1.74 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
const passwordInput = document.getElementById("password");
const lengthSlider = document.getElementById("length");
const lengthValue = document.getElementById("lengthValue");
const uppercaseCheckbox = document.getElementById("uppercase");
const lowercaseCheckbox = document.getElementById("lowercase");
const numbersCheckbox = document.getElementById("numbers");
const symbolsCheckbox = document.getElementById("symbols");
const generateBtn = document.getElementById("generate");
const copyBtn = document.getElementById("copyBtn");
const characters = {
uppercase: "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
lowercase: "abcdefghijklmnopqrstuvwxyz",
numbers: "0123456789",
symbols: "!@#$%^&*()_+-=[]{}|;:,.<>/?"
};
const generatePassword = () => {
let availableChars = "";
let password = "";
if (uppercaseCheckbox.checked) availableChars += characters.uppercase;
if (lowercaseCheckbox.checked) availableChars += characters.lowercase;
if (numbersCheckbox.checked) availableChars += characters.numbers;
if (symbolsCheckbox.checked) availableChars += characters.symbols;
if (availableChars === "") {
passwordInput.value = "Select at least one option!";
return;
}
const len = parseInt(lengthSlider.value);
for (let i = 0; i < len; i++) {
const randomIndex = Math.floor(Math.random() * availableChars.length);
password += availableChars[randomIndex];
}
passwordInput.value = password;
};
const copyPassword = () => {
passwordInput.select();
document.execCommand("copy");
alert("Password copied to clipboard!");
};
lengthSlider.addEventListener("input", () => {
lengthValue.textContent = lengthSlider.value;
});
generateBtn.addEventListener("click", generatePassword);
copyBtn.addEventListener("click", copyPassword);
generatePassword();