Validar senhas com Javascript

Validar senhas com Javascript

A criação de uma senha segura é algo importante para tentar diminuir o risco de invasão da conta do nosso usuário. A validação de senha deve ter feita tanto do lado da aplicação quanto do lado do backend. Vamos ver como fazer validação de senha com JavaScript

Neste exemplo, vamos aprender a criar um script em JavaScript que vai validar se a senha informada atenda a algumas regras. A nossa senha deve ter pelo menos 1 destes elementos:

1 - Letra maíuscula

2 - Letra minúscula

3 - Número

4 - Caractere especial.

Além das regras acima, vamos definir o tamanho da senha como 8 caracteres.

Para validar se existe algum caractere dentro das condições, precisamos criar uma expressão regular. Primeiro, temos que definir qual o modelo que vamos utilizar para cada uma das condições. Isso pode ser feito da seguinte forma:

var letrasMaiusculas = /[A-Z]/;

var letrasMinusculas = /[a-z]/; 

var numeros = /[0-9]/;

var caracteresEspeciais = /[!|@|#|$|%|^|&|*|(|)|-|_]/;

Perceba que os padrões que vão servir de referência ficam entre "/".

Como estas variáveis são expressões regulares, elas possuem um método chamado "test" que serve para conferir se o parâmetro enviado é compatível com o padrão. Aqui tem um exemplo:

var letra = "P";

if(letrasMaiusculas.test(letra)){

console.log('sucesso');

} else {

console.log('erro');

}

Como em nosso exemplo, utilizamos uma letra maíuscula, o teste vai retornar com sucesso.

Para validar o tamanho de uma string, existe uma propriedade chamada "length"

var senha = "teste12345";

if(senha.length == 8){

console.log('sucesso');

} else {

console.log('erro');

}

O retorno deste código será "erro" porque a string senha tem 9 caracteres.

Para reaproveitar código no futuro, vamos criar uma função que faça esta validação por nós. A estrutura da função será a seguinte:

1 - Vamos criar expressões regulares com os padrões que vamos seguir.

2 - O código continua a ser executado somente se a senha tiver o tamanho correto

3 - Vamos fazer um "loop" para cada letra de nossa senha. Cada letra será validada de acordo com as regras. Vamos criar variáveis auxiliares para registrar se houve ou não "match", ou seja, se a letra é compatível com  alguma das regras.

4 - Por último, vamos conferir estas variáveis auxiliares. Se todas estiverem preenchidas, a senha é compatível. Caso contrário, retornamos false.

A função completa ficará assim:

function senhaValida(p){

var retorno = false;

var letrasMaiusculas = /[A-Z]/;

var letrasMinusculas = /[a-z]/; 

var numeros = /[0-9]/;

var caracteresEspeciais = /[!|@|#|$|%|^|&|*|(|)|-|_]/;

if(p.length > 8){

return retorno;

}

if(p.length < 8){

return retorno;

}

var auxMaiuscula = 0;

var auxMinuscula = 0;

var auxNumero = 0;

var auxEspecial = 0;

for(var i=0; i<p.length; i++){

if(letrasMaiusculas.test(p[i]))

auxMaiuscula++;

else if(letrasMinusculas.test(p[i]))

auxMinuscula++;

else if(numeros.test(p[i]))

auxNumero++;

else if(caracteresEspeciais.test(p[i]))

auxEspecial++;

}

if (auxMaiuscula > 0){

if (auxMinuscula > 0){

if (auxNumero > 0){

if (auxEspecial) {

retorno = true;

}

}

}

}

 

return retorno;

}

console.log(senhaValida("test1234"));

console.log(senhaValida("Test123@"));

console.log(senhaValida("Teste123@"));

 

 

Está começando e deseja saber o que precisa estudar de HTML e JavaScript? Não deixe de conferir os roteiros de estudo de HTML e JavaScript!. São dezenas de conteúdos para você melhorar suas habilidades.

Roteiro de estudos - HTML e CSS

Roteiro de estudos - Javascript

 

Outros conteudos que podem ser de seu interesse

Ler arquivo PDF com NodeJS
01/12/2019JAVASCRIPT

Ler arquivo PDF com NodeJS

Veja como extrair o texto de um arquivo PDF usando NodeJS

Saiba mais...
Validando placas de veiculos com JavaScript
03/11/2019JAVASCRIPT

Validando placas de veiculos com JavaScript

Validando placas de carros ou motos nos formatos atual ou novo com JS

Saiba mais...

Conteúdo sobre banco de dados sem complicação!