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?
Civilization
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.
Galaxy Game
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.
Máquina de Pascal
A Máquina de Pascal, criada em 1642 pelo filósofo, físico e matemático francês Blaise Pascal, é reconhecida como o primeiro computador do mundo e ele foi criado com o objetivo de calcular impostos. Saiba mais.
ENIAC
O ENIAC, primeiro computador valvulado do mundo, possuía 17.000 válvulas, 500.000 pontos de solda, 30 toneladas de peso e ocupava uma área de 180 metros quadrados. Clique aqui e conheça mais sobre a história dos computadores.
Senhas
Digitar senhas em computadores de uso coletivo é extremamente perigoso, pois além de softwares de monitoramento, existem dispositivos de hardware que podem capturar suas senhas. Evite ao máximo acessar sites de bancos a partir destes computadores. Veja mais aqui.