June 25 - Optimize codes
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
/* ── Password strength meter (shared by base.html and standalone pages) ── */
|
||||
function _pwStrengthLevel(pw) {
|
||||
var score = 0;
|
||||
if (pw.length >= 8) score++;
|
||||
if (pw.length >= 12) score++;
|
||||
if (/[A-Z]/.test(pw)) score++;
|
||||
if (/[0-9]/.test(pw)) score++;
|
||||
if (/[^A-Za-z0-9]/.test(pw)) score++;
|
||||
var map = ['pw-weak','pw-weak','pw-fair','pw-strong','pw-great','pw-great'];
|
||||
var lbl = ['Weak','Weak','Fair','Strong','Very strong','Very strong'];
|
||||
return { cls: map[score], label: lbl[score] };
|
||||
}
|
||||
|
||||
function attachPasswordStrength(inputId, fillId, labelId) {
|
||||
var input = document.getElementById(inputId);
|
||||
var fill = document.getElementById(fillId);
|
||||
var lbl = document.getElementById(labelId);
|
||||
if (!input || !fill || !lbl) return;
|
||||
input.addEventListener('input', function() {
|
||||
if (!this.value) {
|
||||
fill.className = 'pw-strength-fill';
|
||||
lbl.className = 'pw-strength-label';
|
||||
lbl.textContent = '';
|
||||
return;
|
||||
}
|
||||
var r = _pwStrengthLevel(this.value);
|
||||
fill.className = 'pw-strength-fill ' + r.cls;
|
||||
lbl.className = 'pw-strength-label ' + r.cls;
|
||||
lbl.textContent = r.label;
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user