Repository navigation
Expand file tree
/
Copy pathex42.js
More file actions
63 lines (49 loc) · 1.56 KB
/
Copy pathex42.js
File metadata and controls
63 lines (49 loc) · 1.56 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
const limiteTentativas = 3;
const senhaSalva = "ABCDS1234";
let tentativasUsadas = 0;
const inputSenha = document.querySelector("#senha");
const botao = document.querySelector("#btnValidar");
const mensagem = document.querySelector("#mensagem");
const tentativas = document.querySelector("#tentativas");
function validarSenha(senhaDigitada) {
const senhaMinima = 6;
if (senhaDigitada.length < senhaMinima) {
return {
sucesso: false,
mensagem: "A senha deve ter pelo menos 6 caracteres.",
contarTentativas: true
};
}
if (!/\d/.test(senhaDigitada)) {
return {
sucesso: false,
mensagem: "A senha precisa conter pelo menos um número.",
contarTentativas: true
};
}
return {
sucesso: true,
mensagem: "Senha válida.",
contarTentativas: false
};
}
botao.addEventListener("click", () => {
mensagem.classList.remove("sucesso", "erro");
const resultado = validarSenha(inputSenha.value);
mensagem.textContent = resultado.mensagem;
if (resultado.sucesso) {
mensagem.classList.add("sucesso");
inputSenha.value = "";
return;
}
if (resultado.contarTentativas) {
tentativasUsadas++;
}
const restantes = limiteTentativas - tentativasUsadas;
tentativas.textContent = `Tentativas restantes ${restantes}`;
if (tentativasUsadas >= limiteTentativas) {
mensagem.textContent = "Acesso bloqueado";
botao.disabled = true;
}
inputSenha.value = "";
});