Validação De Data Em Javascript
#1
Posted 23/05/2006, 09:28
Em JavaScript, como eu faço para saber se uma data informada em um text é válida?
Aguardo ancioso...
Obrigado
Denis
#2
Posted 23/05/2006, 09:39
Flws...
Até mais
#3
Posted 23/05/2006, 10:07
Validar você diz se a data existe ou se está formatado direito? Tipo, xx/xx/xxxx??
Flws...
Então... na verdade gostaria que fossem validadas as duas cituações: se a data existe e se está formatado direito? Tipo, xx/xx/xxxx.
Obrigado,
Denis
#4
Posted 23/05/2006, 10:28
<script type="text/javascript"> <!-- function validarData(campo) { var expReg = /^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[1-2][0-9]\d{2})$/; var msgErro = 'Formato inválido de data.'; if ((campo.value.match(expReg)) && (campo.value!='')) { alert('Data válida'); } else { alert(msgErro); campo.focus(); } } //--> </script>
Flws
Até mais
#5
Posted 23/05/2006, 11:49
Só mais uma dúvida: eu testei com 29/02/2006 (2006 não é um ano bissexto) e ele retornou 'data válida!'.
Tem alguma função ou script para testar se o ano é bissexto?
Obrigado mais uma vez!!
Denis
Edição feita por: Denis Andrade, 23/05/2006, 11:49.
#6
Posted 23/05/2006, 11:51
Flws...
Até mais
#7
Posted 23/05/2006, 13:05
<script type="text/javascript">
function validarData(campo){
var expReg = /^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[1-2][0-9]\d{2})$/;
var msgErro = 'Formato inválido de data.';
if ((campo.value.match(expReg)) && (campo.value!='')){
var dia = campo.value.substring(0,2);
var mes = campo.value.substring(3,5);
var ano = campo.value.substring(6,10);
if(mes==4 || mes==6 || mes==9 || mes==11 && dia > 30){
alert("Dia incorreto !!! O mês especificado contém no máximo 30 dias.");
return false;
} else{
if(ano%4!=0 && mes==2 && dia>28){
alert("Data incorreta!! O mês especificado contém no máximo 28 dias.");
return false;
} else{
if(ano%4==0 && mes==2 && dia>29){
alert("Data incorreta!! O mês especificado contém no máximo 29 dias.");
return false;
} else{
alert ("Data correta!");
return true;
}}}} else {
alert(msgErro);
campo.focus();
return false;
}}
</script>
Edição feita por: Denis Andrade, 23/05/2006, 13:06.
#8
Posted 21/09/2006, 16:57
e como ficariam??
e-mail: tiagossj4@terra.com.br
msn: tfsarri@hotmail.com
GMail: tisarri@gmail.com
Skype: tiagosarri
aquele que caminha sozinho pode até chegar mais rapido, mas aquele que vai acompanhado com certeza chegará mais longe!!
RAÇA TIMÃO VC É TRADIÇÃO OU NA VITORIA , OU NA DERROTA EU GRITO FORTE CORINTHIANO EU SEREI ATE A MORTE!!!
#10
Posted 22/09/2006, 09:16
e-mail: tiagossj4@terra.com.br
msn: tfsarri@hotmail.com
GMail: tisarri@gmail.com
Skype: tiagosarri
aquele que caminha sozinho pode até chegar mais rapido, mas aquele que vai acompanhado com certeza chegará mais longe!!
RAÇA TIMÃO VC É TRADIÇÃO OU NA VITORIA , OU NA DERROTA EU GRITO FORTE CORINTHIANO EU SEREI ATE A MORTE!!!
#12
Posted 22/09/2006, 11:04
e-mail: tiagossj4@terra.com.br
msn: tfsarri@hotmail.com
GMail: tisarri@gmail.com
Skype: tiagosarri
aquele que caminha sozinho pode até chegar mais rapido, mas aquele que vai acompanhado com certeza chegará mais longe!!
RAÇA TIMÃO VC É TRADIÇÃO OU NA VITORIA , OU NA DERROTA EU GRITO FORTE CORINTHIANO EU SEREI ATE A MORTE!!!
#13
Posted 01/02/2008, 10:59
vlw
O Tópico é antigo mas não pude deixar de ver que o código precisava de uns acertos:
function check_date(DATA) { var expReg = /^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[1-2][0-9]\d{2})$/; var msgErro = 'Formato inválido de data.'; var vdt = new Date(); var vdia = vdt.getDay(); var vmes = vdt.getMonth(); var vano = vdt.getYear(); if ((DATA.value.match(expReg)) && (DATA.value!='')){ var dia = DATA.value.substring(0,2); var mes = DATA.value.substring(3,5); var ano = DATA.value.substring(6,10); if((mes==04 && dia > 30) || (mes==06 && dia > 30) || (mes==09 && dia > 30) || (mes==11 && dia > 30)){ alert("Dia incorreto !!! O mês especificado contém no máximo 30 dias."); DATA.focus(); return false; } else{ //1 if(ano%4!=0 && mes==2 && dia>28){ alert("Data incorreta!! O mês especificado contém no máximo 28 dias."); DATA.focus(); return false; } else{ //2 if(ano%4==0 && mes==2 && dia>29){ alert("Data incorreta!! O mês especificado contém no máximo 29 dias."); DATA.focus(); return false; } else{ //3 if (ano > vano) { alert("Data incorreta!! Ano informado maior que ano atual."); DATA.focus(); return false; }else{ //4 //alert ("Data correta!"); return true; } //4-else } //3-else }//2-else }//1-else } else { //5 alert(msgErro); DATA.focus(); return false; } //5-else}Espero ter ajudado!!
Edição feita por: § Kenshin §, 01/02/2008, 16:36.
inclusao da [codebox]. leia as regras.
#14
Posted 01/02/2008, 15:15
Yeah I do have some stories, and it's true I want all the glory ...
#15
Posted 18/03/2008, 16:48
Sou meio leigo em JavaScript, e ainda não entendi o porque do problema..
var expReg = /^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[1-2][0-9]\d{2})$/;
Edição feita por: bimonti, 24/03/2008, 10:27.
Arrumar o flood.
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)