-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
88 lines (77 loc) · 2.61 KB
/
script.js
File metadata and controls
88 lines (77 loc) · 2.61 KB
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
const passwordInput = document.getElementById("passwordInput");
const strengthBar = document.querySelector(".strength-bar");
const strengthText = document.getElementById("strengthText");
const strengthDescription = document.getElementById("strengthDescription");
function checkPasswordStrength(password) {
const strength = {
score: 0,
messages: [],
};
// Check password length (minimum 8 characters)
if (password.length >= 8) {
strength.score++;
} else {
strength.messages.push("Password is too short.");
}
// Check for uppercase, lowercase, numbers, and symbols
const hasUppercase = /[A-Z]/.test(password);
const hasLowercase = /[a-z]/.test(password);
const hasNumbers = /[0-9]/.test(password);
const hasSymbols = /[^a-zA-Z0-9]/.test(password);
if (hasUppercase) {
strength.score++;
} else {
strength.messages.push("Password should include uppercase letters.");
}
if (hasLowercase) {
strength.score++;
} else {
strength.messages.push("Password should include lowercase letters.");
}
if (hasNumbers) {
strength.score++;
} else {
strength.messages.push("Password should include numbers.");
}
if (hasSymbols) {
strength.score++;
} else {
strength.messages.push("Password should include symbols.");
}
// Update strength bar and text based on score
const width = (strength.score / 4) * 100; // 4 = maximum score
strengthBar.style.width = `${width}%`;
switch (strength.score) {
case 0:
strengthText.textContent = "Strength: Weak";
strengthDescription.textContent = "";
break;
case 1:
strengthText.textContent = "Strength: Weak";
strengthDescription.textContent = "Consider adding more complexity.";
break;
case 2:
strengthText.textContent = "Strength: Medium";
strengthDescription.textContent = "Add one more complexity type for better strength.";
break;
case 3:
strengthText.textContent = "Strength: Strong";
strengthDescription.textContent = "Good password!";
break;
case 4:
strengthText.textContent = "Strength: Very Strong";
strengthDescription.textContent = "Excellent password!";
break;
default:
strengthText.textContent = "Strength: Unknown";
strengthDescription.textContent = "";
}
// Update description with specific recommendations based on messages
if (strength.messages.length > 0) {
strengthDescription.textContent = "Your password could be stronger by: " + strength.messages.join(", ");
}
}
passwordInput.addEventListener("input", function() {
const password = this.value;
checkPasswordStrength(password);
});