O exemplo abaixo efetua a validação de datas através de uma função que recebe o nome do campo como parâmetro.

<script language="javascript">
function validaDatas() {
if (validaDat('dataInicial') && (validaDat('dataFinal'))) {
return true;
}
else {
return false;
}
}

function validaDat(nomeCampo) {
var campo = nomeCampo;
if (document.getElementById(campo).value.length == 10) {
var date = document.getElementById(campo).value;
var ardt = new Array;
var ExpReg = new RegExp("(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/[12][0-9]{3}");
ardt = date.split("/");
erro = false;
if (date.search(ExpReg) == -1) {
erro = true;
}
else if (((ardt[1] == 4) || (ardt[1] == 6) || (ardt[1] == 9) || (ardt[1] == 11)) && (ardt[0] > 30))
erro = true;
else if (ardt[1] == 2) {
if ((ardt[0] > 28) && ((ardt[2] % 4) != 0))
erro = true;
if ((ardt[0] > 29) && ((ardt[2] % 4) == 0))
erro = true;
}
if (erro) {
alert("A data informada é inválida.");
document.getElementById(campo).focus();
return false;
}
else {
return true;
}
}
else {
alert("A data informada é inválida.");
document.getElementById(campo).focus();
return false;
}
}
</script>


No exemplo acima, 'dataInicial' e 'dataFinal' são os nomes dos campos que se deseja validar. A função valida os dois campos ao mesmo tempo. Caso você tenha somente um campo para validar, basta remover um deles do início da função, deixando a linha condicional da seguinte forma:

if (validaDat('dataInicial')) { ...


Outras dicas de Javascript


Bloqueando acentos e caracteres especiais

Bloqueando o botão direito do mouse

Contando palavras em Javascript

Diferenças entre window.location.href e top.location.href

Executando funções Javascript ou jQuery automaticamente durante o carregamento da página

Impedindo seleção de textos

innerText no Firefox

Javascript aguardando para chamar outra função

Recarregando a página em Javascript

Redirecionando após uma mensagem (alert)

Redirecionando em Javascript

Retornando à página anterior

Tabela de acentos em Javascript

Validando datas

Verificando se uma variável Javascript é nula ou está vazia

Você Sabia?

O título Tetris detém o recorde de jogo mais adaptado de todos os tempos. No total foram mais de 60 plataformas diferentes que receberam alguma versão do quebra-cabeças criado por Alexey Pajitnov. Conheça mais sobre este incrível jogo clicando aqui.


As primeiras máquinas de fliperama do mundo a utilizarem moedas, chamadas de Galaxy Game, custavam mais de 20 mil dólares para serem produzidas. Saiba mais sobre elas aqui.


Excesso de barulho dentro do seu gabinete, principalmente logo que você o liga, pode ser sintoma de problemas nas ventoinhas, que podem precisar ser limpas ou trocadas. Entre em contato com um técnico de sua confiança e verifique isso o quanto antes.


Utilizar seu notebook em camas, sofás ou qualquer superfície macia pode obstruir as entradas e saídas de ar, elevando a temperatura e provocando danos a diversos componentes. Utilize-o sempre sobre uma superfície rígida. Saiba mais aqui.


A empresa Take-Two pagou à Infogrames mais de 22 milhões de dólares pelos direitos de Civilization, em novembro de 1994. Ainda sobre este título, Sid Meier, um dos seus fundadores, é o profissional da área dos games mais premiado em todo o mundo.