J'ai la fonction javascript suivante qui s'exécute au moment de la frappe à l'intérieur d'une entrée :
var passwordInput = document.getElementsByName("newPassword")[0].value;
var upperCase= new RegExp('[A-Z]');
var lowerCase= new RegExp('[a-z]');
var numbers = new RegExp('[0-9]');
if ( passwordInput.match(lowerCase) ) {
$('.strength-check__rule[data-index="1"]').addClass('check-rule--pass');
} else {
$('.strength-check__rule[data-index="1"]').removeClass('check-rule--pass');
}
if (passwordInput.match(upperCase)) {
$('.strength-check__rule[data-index="2"]').addClass('check-rule--pass');
} else {
$('.strength-check__rule[data-index="2"]').removeClass('check-rule--pass');
}
if(passwordInput.match(numbers)) {
$('.strength-check__rule[data-index="3"]').addClass('check-rule--pass');
} else {
$('.strength-check__rule[data-index="3"]').removeClass('check-rule--pass');
}
if(passwordInput.length >= 8) {
$('.strength-check__rule[data-index="4"]').addClass('check-rule--pass');
} else {
$('.strength-check__rule[data-index="4"]').removeClass('check-rule--pass');
}
Les addClasses à l'intérieur de chaque condition ajoutent simplement une classe à une li pour montrer que cette condition a été remplie. Je me demande si quelqu'un a des conseils à me donner sur la façon de raccourcir ce texte ou de le rendre plus concis, en particulier les trois premières conditions qui sont très similaires.