0
votes

Comment faire une fonction qui valide un mot de passe et renvoie 1 s'il remplit toutes les exigences et 0 si cela ne le fait pas?

Je voulais faire une fonction dans JS qui valide un mot de passe. Le mot de passe doit avoir au moins 8 et au plus 32 caractères, au moins une lettre majuscule, une lettre minuscule et un nombre. En outre, il devrait renvoyer 1 quand il remplit toutes les exigences et 0 quand ce n'est pas le cas.
Mon programme renvoie une valeur booléenne, mais même quand c'est vrai, il continue de retourner 0. Que dois-je faire? XXX


0 commentaires

3 Réponses :


0
votes

const pattern = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])([0-9a-zA-Z]{8,32})$/

function validate(password){
  return pattern.test(password) ? 1 : 0;
}

console.log(validate("Password10"))


0 commentaires

0
votes

Vous mettez la mise en valeur de l'existence de votre variable de regex compilée.

Ceci fonctionne: p>

p>

var passRegex = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])([0-9a-zA-Z]{8,32})$/

function isPasswordValid(p) {
  return passRegex.test(p) ? 1 : 0;
}

console.log(isPasswordValid("Password10"));
console.log(isPasswordValid("Pass0"));


0 commentaires

0
votes

Vous avez oublié de sauvegarder le résultat de votre méthode de test code> de votre code> à la variable et que vous le mettez en si. C'est pourquoi même s'il était vrai code> il n'est jamais allé à l'intérieur de la déclaration IF. Enregistrez-le d'abord à la variable, puis comparez-la si comme celui-ci

var validatePassword = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])([0-9a-zA-Z]{8,32})$/

let result = validatePassword.test("Password10")
console.log(result)

if (result == true) {
    console.log("1")
} else {
    console.log("0")
}


0 commentaires