Jump to content


Photo

Validação De Data Em Javascript


  • Faça o login para participar
21 replies to this topic

#1 Denis Andrade

Denis Andrade

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Não informado

Posted 23/05/2006, 09:28

Oi pessoal,

Em JavaScript, como eu faço para saber se uma data informada em um text é válida?

Aguardo ancioso...

Obrigado

Denis
:unsure:

#2 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 23/05/2006, 09:39

Validar você diz se a data existe ou se está formatado direito? Tipo, xx/xx/xxxx??

Flws...
:huh: Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#3 Denis Andrade

Denis Andrade

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Não informado

Posted 23/05/2006, 10:07

Validar você diz se a data existe ou se está formatado direito? Tipo, xx/xx/xxxx??

Flws...
:huh:


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 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 23/05/2006, 10:28

Hummm... para saber se a data existe eu vou ficar te devendo, mas para o formato você pode fazer assim:
<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
:DAté mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#5 Denis Andrade

Denis Andrade

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Não informado

Posted 23/05/2006, 11:49

Brow... deu certo!! Muito obrigado!!

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 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 23/05/2006, 11:51

Pois é, foi o que eu disse, só postei uma forma de validação. Que é a formatação xx/xx/xxxx, outra podemos ficar no aguardo para ver se alguém mais tem a solução..

Flws...
;) Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#7 Denis Andrade

Denis Andrade

    Novato no fórum

  • Usuários
  • 5 posts
  • Sexo:Não informado

Posted 23/05/2006, 13:05

Brow... consequi. Utilizei o script que vc postou e acrescentei o seguinte:

<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 kaplan

kaplan

    Ativo

  • Usuários
  • 303 posts
  • Sexo:Masculino
  • Localidade:Sao Paulo - SP

Posted 21/09/2006, 16:57

eu tenho que mudar o input o meu form???
e como ficariam??
Tiago Fernando Sarri
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!!!

#9 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 21/09/2006, 21:23

Não entendi o que você quer .. :P
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#10 kaplan

kaplan

    Ativo

  • Usuários
  • 303 posts
  • Sexo:Masculino
  • Localidade:Sao Paulo - SP

Posted 22/09/2006, 09:16

eu queria saber como eu faço para chamar a função
Tiago Fernando Sarri
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!!!

#11 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 22/09/2006, 10:46


<input onBlur="validarData(this)" />


WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#12 kaplan

kaplan

    Ativo

  • Usuários
  • 303 posts
  • Sexo:Masculino
  • Localidade:Sao Paulo - SP

Posted 22/09/2006, 11:04

vlw
Tiago Fernando Sarri
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 Gen

Gen

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Não informado

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}
:lol: Espero ter ajudado!!

Edição feita por: § Kenshin §, 01/02/2008, 16:36.
inclusao da [codebox]. leia as regras.


#14 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 01/02/2008, 15:15

Eu acho que daria pra fazer só com ER. Uns cara mais hardcore no assunto, como o Eclesiastes deve saber. Mas de qualquer forma, é uma excelente colaboração para o fórum. Obrigado por compartilhar.
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#15 BeRGlaU

BeRGlaU

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Não informado

Posted 18/03/2008, 16:48

Pessoal, pra mim esse trecho do código da erro.
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)

IPB Skin By Virteq