Java Script

Como validar datas em Java Script

Validar informações digitadas em campo de texto antes de enviar ao servidor é um recurso importante para poupar tempo e recursos. Neste post veja como validar datas em Java Script.

 function validaData(stringData)
 {
    //VALIDA DATA NO FORMATO DD/MM/AAAA 
    
    var regExpCaracter = /[^\d]/;   //Expressão regular para procurar caracter não-numérico.
    var regExpEspaco = /^\s+|\s+$/g;  //Expressão regular para retirar espaços em branco.
    
    if(stringData.length != 10)
    {
        return false;
    }
    
    splitData = stringData.split('/');
    
    if(splitData.length != 3)
    {
        return false;
    }
    
    /* Retira os espaços em branco do início e fim de cada string. */
    splitData[0] = splitData[0].replace(regExpEspaco, '');
    splitData[1] = splitData[1].replace(regExpEspaco, '');
    splitData[2] = splitData[2].replace(regExpEspaco, '');
    
    if ((splitData[0].length != 2) || (splitData[1].length != 2) || 
        (splitData[2].length != 4))
    {
        return false;
    }
    
    /* Procura por caracter não-numérico. EX.: o "x" em "28/09/2x11" */
    if (regExpCaracter.test(splitData[0]) || regExpCaracter.test(splitData[1]) ||
        regExpCaracter.test(splitData[2]))
    {
        return false;
    }
    
    dia = parseInt(splitData[0],10);
    //O JavaScript representa o mês de 0 a 11 (0->janeiro, 1->fevereiro... 11->dezembro)
    mes = parseInt(splitData[1],10)-1; 
    ano = parseInt(splitData[2],10);
    
    var novaData = new Date(ano, mes, dia);
    
	/* O JavaScript aceita criar datas com, por exemplo, mês=14, porém a cada 12 meses mais um 
	ano é acrescentado a data final e o restante representa o mês. O mesmo ocorre para os dias, 
	sendo maior que o número de dias do mês em questão o JavaScript o converterá para meses/anos.
	Por exemplo, a data 28/14/2011 (que seria o comando "new Date(2011,13,28)", pois o mês é 
	representado de 0 a 11) o JavaScript converterá para 28/02/2012.
	Dessa forma, se o dia, mês ou ano da data resultante do comando "new Date()" for diferente 
	do dia, mês e ano da data que está sendo testada esta data é inválida. */
         
    if ((novaData.getDate() != dia) || (novaData.getMonth() != mes) || 
        (novaData.getFullYear() != ano))
    {
        return false;
    }
    else
    {
        return true;
    }
 }
QUER SER UM PROGRAMADOR FULL-STACK E DOMINAR AS PRINCIPAIS TECNOLOGIAS DO MERCADO?

Aprenda através de projetos reais e aulas práticas. São 20 cursos completos + cursos bônus. Grupos privados exclusivos, atualizações constantes e lives semanais.

Python, PHP, Java Script, CSS, Node, Angular JS, MySQL, Photoshop, Flutter, AWS, Apache e muito mais!

CLIQUE NA IMAGEM ABAIXO E CONFIRA MAIS DETALHES:

Link do curso: https://go.hotmart.com/X68198266R

Validar e-mail e CPF em Java Script

Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits

Bene Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *