Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

leooizepi

[Resolvido] Validação de Data

Recommended Posts

Boa tarde galera! beleza?

 

Galera, é o seguinte tenho uma função para fazer a validação de data:

 

function ValidarData(value) {
	var er = /^(0?[1-9]|[12]\d|3[01])\/(0?[1-9]|1[0-2])\/(19|20)?\d{2}$/;
	if (er.test(value)) 
		return true
	else 
		return false;
}

Até hoje estava tudo beleza, mais teve um usuario que colocou a data: 30/02/2011 (uma data não existente)!

 

Como eu faço uma verificação para saber se a data é verdadeira ou falsa?

 

valeu!! abraço!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apenas com ER, é impossível verificar ano bissexto e tal..

você precisa montar o algorítimo baseado, nas informações que tem.

 

Existem vários exemplos aqui pelo fórum, e na net.

Tente desenvolver. Não é 'tão complicado'...

 

veja que os meses seguem uma certa regra.

Tais tem 30 dias 'sempre'

Tais tem 31 dias 'sempre'

Fevereiro tem 29 dias em ano bissexto

Fevereiro nunca tem os dias 30 e 31

Nos outros anos, Fevereiro tem 28 dias.

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeu willian, peguei um exemplo e fiz pequenas modificações

 


function ValidarData(value) {
		
	var divisor = '/';
	var data = value;
	var dataAtual = '';
	
	if (data.match (/^(0[1-9]|[12][0-9]|3[01]).?(0[1-9]|1[012]).?([12][0-9]{3}|[0-9]{2})$/)) { 	
		data = data.replace (/[^0-9]/g, '');	
		dataAtual = data.substr(0,2)+divisor+data.substr(2,2)+divisor ;
		
		if(data.substr(4).length == 4) 
			dataAtual += data.substr (4); 	
		else 
			dataAtual += (data.substr (4) > 30 ? '19' : '20') + data.substr (4);
	} else {
		// Data invalida
		return false;
	}
	
	x = dataAtual.split (divisor); 	
	confere = new Date (x[2],x[1]-1,x[0]); 	
	confere2 = (confere.getDate () < 10 ? '0' : '') + confere.getDate (); 	
	confere2 += divisor + ((confere.getMonth()+1) < 10 ? '0' : '') + (confere.getMonth()+1); 	
	confere2 += divisor + confere.getFullYear();;

	if (confere2 != dataAtual) {
		// Data invalida
		return false;
	} else {
		// Data verdadeira
		return true;
	} 	
}

valeu!! t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.