diff --git a/public/registrieren/passwordValidation.js b/public/registrieren/passwordValidation.js index 3a6fbc2..daebbbe 100644 --- a/public/registrieren/passwordValidation.js +++ b/public/registrieren/passwordValidation.js @@ -1,45 +1,24 @@ -// Funktion, um die Stärke des Passworts zu bewerten -function checkPasswordStrength(password) { - const strengthBar = document.getElementById('passwordStrengthBar'); - const passwordStrength = evaluatePasswordStrength(password); +const passwordInput = document.getElementById("regPassword"); +const strengthBar = document.getElementById("passwordStrengthBar"); - // Aktualisiere den Sicherheitsbalken basierend auf der Stärke - if (passwordStrength === 'weak') { - strengthBar.classList.remove('medium', 'strong'); - strengthBar.classList.add('weak'); - } else if (passwordStrength === 'medium') { - strengthBar.classList.remove('weak', 'strong'); - strengthBar.classList.add('medium'); - } else { - strengthBar.classList.remove('weak', 'medium'); - strengthBar.classList.add('strong'); - } -} - -// Funktion zur Beurteilung der Passwortstärke -function evaluatePasswordStrength(password) { - if (password.length >= 8 && /[A-Z]/.test(password) && /[0-9]/.test(password)) { - return 'strong'; - } else if (password.length >= 6) { - return 'medium'; - } else { - return 'weak'; - } -} - -// Event Listener für das Passwortfeld -document.getElementById('regPassword').addEventListener('input', function() { - checkPasswordStrength(this.value); +passwordInput.addEventListener("input", () => { + const password = passwordInput.value; + const strength = getPasswordStrength(password); + updateStrengthBar(strength); }); -// Event Listener für das Bestätigungs-Passwortfeld -document.getElementById('confirmPassword').addEventListener('input', function() { - const password = document.getElementById('regPassword').value; - const confirmPassword = this.value; +function getPasswordStrength(password) { + let strength = 0; + if (password.length >= 8) strength++; // Mindestlänge + if (/[A-Z]/.test(password)) strength++; // Großbuchstaben + if (/[a-z]/.test(password)) strength++; // Kleinbuchstaben + if (/[0-9]/.test(password)) strength++; // Zahlen + if (/[^A-Za-z0-9]/.test(password)) strength++; // Sonderzeichen + return strength; +} - if (password !== confirmPassword) { - this.setCustomValidity("Die Passwörter stimmen nicht überein."); - } else { - this.setCustomValidity(""); - } -}); +function updateStrengthBar(strength) { + const colors = ["#ccc", "red", "orange", "yellow", "lightgreen", "green"]; + strengthBar.style.width = `${(strength / 5) * 100}%`; + strengthBar.style.backgroundColor = colors[strength]; +} diff --git a/public/registrieren/registrieren.html b/public/registrieren/registrieren.html index f95b594..ab1d6e2 100644 --- a/public/registrieren/registrieren.html +++ b/public/registrieren/registrieren.html @@ -13,11 +13,11 @@