JAVASCRIPT

Validar senhas com Javascript

Aprenda a criar regras para cadastrar senhas seguras

20/10/2019JAVASCRIPT

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

Exportar tabela para Excel com Javascript
07/10/2019JAVASCRIPT

Exportar tabela para Excel com Javascript

Aprenda a exportar sua tabela HTML para Excel usando o plugin DataTables

Saiba mais...
Validando formularios com Wordpress
12/03/2017JAVASCRIPT

Validando formularios com Wordpress

Aprenda como fazer uma validação de formulário do lado do cliente usando Wordpress

Saiba mais...

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

MySQL - Referência Rápida

 

SQL Server - Referência Rápida

 

SQL vs Mongo