Frase da Semana #22
Um raciocínio lógico leva você de A a B. A imaginação leva você a qualquer lugar que você quiser. Albert Einstein
Um raciocínio lógico leva você de A a B. A imaginação leva você a qualquer lugar que você quiser. Albert Einstein
Mais um dia de trabalho, estava eu programando a aplicacao web de um cliente, quando precisei implementar um controle de senha de usuario, mas desta vez um pouco mais elaborado. A senha deve obedecer as seguintes regras:
Os dois primeiros requisitos sao comuns e mais simples de se implementar, por exemplo:
senha.length < 12
para verificar o comprimento da senha, e
var regex = /[0-9][a-z]/i; regex.test(senha);
para verificar se a senha eh formada por letras e numeros.
Buenas, entao troquei uma ideia com o meu amigo Diego, sobre uma expressao regular que fizesse a verificacao de caracteres nao repetidos em uma string qualquer. Alguns minutos de pesquisa do Google, documentacoes e e-books, entao desisti e parti para o bom e velho FOR
Depois de alguns minutos, saiu isso:
var i, j, distintos = "", jaTemCaractere = false;
for (i = 0; i < senha.length; i++) {
for (j = 0; j < distintos.length; j++) {
if (senha.substr(i, 1) == distintos.substr(j, 1)) {
jaTemCaractere = true;
break;
}
}
if (!jaTemCaractere) {
distintos = distintos + senha.substr(i, 1);
}
jaTemCaractere = false;
}
if (distintos.length < 6) {
ret = false;
}
No proximo post sobre JavaScript vou compartilhar uma abordagem bem simples e direta para validacao de campos obrigatorios.
É quando a maré está baixa que se descobre quem estava nadando pelado. Warren Buffett.