Jump to content


Photo

Validação De Dados


  • Faça o login para participar
Nenhuma resposta neste tópico

#1 gambiT_

gambiT_

    Novato no fórum

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

Posted 06/08/2010, 16:59

Favor reportarem qualquer inconsistência no script abaixo:

$(document).ready(function() {
	$('.numero').validarNUMERO('999999');
	$('.nome').validarNOME();
	$('.data').validarDATA('99/99/9999');
	$('.hora').validarHORA('99:99');
	$('.docCPF').validarCPF('999.999.999-99');
	$('.docCNPJ').validarCNPJ('99.999.999/9999-99');
	$('.email').validarEMAIL();
});

$.fn.setOK = function() {
	$(this)
		.removeClass('statusERRO')
		.addClass('statusOK');
}

$.fn.setERRO = function() {
	$(this)
		.removeClass('statusOK')
		.addClass('statusERRO');
}

$.fn.setDEFAULT = function() {
	$(this)
		.removeClass('statusERRO')
		.removeClass('statusOK');
}

$.fn.validarNOME = function() {
	$(this).blur(function() {
		if ($(this).val() && $(this).val() != '') {
			if (validarNOME($(this).val())) $(this).setOK();
			else $(this).setERRO();
		}
	});
}

$.fn.validarNUMERO = function(mask) {
	$(this)
		.attr('maxlength', mask.length)
		.attr('size', mask.length)
		.blur(function() {
		if ($(this).val() && $(this).val() != '') {
			if (validarNUMERO($(this).val())) $(this).setOK();
			else $(this).setERRO();
		} else $(this).setDEFAULT();
	});
}

$.fn.validarDATA = function(mask) {
	$(this)
		.attr('maxlength', mask.length)
		.attr('size', mask.length)
		.blur(function() {
		if ($(this).val() && $(this).val() != '') {
			if (validarDATA($(this).val())) $(this).setOK();
			else $(this).setERRO();
		}
	});
}

$.fn.validarHORA = function(mask) {
	$(this)
		.attr('maxlength', mask.length)
		.attr('size', mask.length)
		.blur(function() {
		if ($(this).val() && $(this).val() != '') {
			if (validarHORA($(this).val())) $(this).setOK();
			else $(this).setERRO();
		}
	});
}

function validarEMAIL(EMAIL) {
	if (EMAIL.indexOf('@') < 0 || EMAIL.indexOf('.') < EMAIL.indexOf('@')) return false;
	else {
		var usuario = EMAIL.split('@')[0];
		var dominio = (EMAIL.split('@')[1]).split('.')[0];
		var extensao = (EMAIL.split('@')[1]).split('.')[1];
		if (!usuario || !dominio || !extensao) $(this).setERRO();
		else {
			if (usuario.length < 3 || dominio.length < 2 || extensao < 2) return false;
			else return true;
		}
	}
}

$.fn.validarEMAIL = function() {
	$(this).blur(function() {
		if ($(this).val() && $(this).val() != '') {
			if (validarEMAIL($(this).val())) $(this).setOK();
			else $(this).setERRO();
		} else $(this).setDEFAULT();
	});
}

$.fn.validarCPF = function(mask) {
	$(this)
		.attr('maxlength', mask.length)
		.attr('size', mask.length)
		.focus(function() {
			if ($(this).val() && $(this).val() != '') {
				if (validarCPF($(this).val())) $(this).setOK();
				else $(this).setDEFAULT();
			}
		})
		.blur(function() {
			if ($(this).val() != '') {
				if (validarCPF($(this).val())) $(this).setOK();
				else $(this).setERRO();
			} else $(this).setDEFAULT();
		})
		.live('keyup keypress', function() {
			if ($(this).attr('maxlength') == $(this).val().length) {
				if (validarCPF($(this).val())) $(this).setOK();
				else $(this).setERRO();
			} else $(this).setDEFAULT();
		});
}

$.fn.validarCNPJ = function(mask) {
	$(this)
		.attr('maxlength', mask.length)
		.attr('size', mask.length)
		.focus(function() {
			if ($(this).val() && $(this).val() != '') {
				if (validarCNPJ($(this).val())) $(this).setOK();
				else $(this).setDEFAULT();
			}
		})
		.blur(function() {
			if ($(this).val() != '') {
				if (validarCNPJ($(this).val())) $(this).setOK();
				else $(this).setERRO();
			} else $(this).setDEFAULT();
		})
		.live('keyup keypress', function() {
			if ($(this).attr('maxlength') == $(this).val().length) {
				if (validarCNPJ($(this).val())) $(this).setOK();
				else $(this).setERRO();
			} else $(this).setDEFAULT();
		});
}

function validarNUMERO(N) {
	if (N && !isNaN(N)) return true;
	else return false;
}

function validarNOME(NOME) {
	var tmp = NOME.split(' ');

	if (tmp.length > 1 && isNaN(tmp[0]) && tmp[0].length > 1 && isNaN(tmp[1]) && tmp[1].length > 1) return true;
	else return false;
}

function validarDATA(DATA) {
	var tmp = DATA.split('/');

	var dia = tmp[0];
	var mes = tmp[1];
	var ano = tmp[2];

	if (dia < 01 || (dia < 01 || dia > 30) && (mes == 04 || mes == 06 || mes == 09 || mes == 11) || dia > 31) return false;
	if (mes < 01 || mes > 12) return false;
	if (mes == 2 && (dia < 01 || dia > 29 || (dia > 28 && (parseInt(ano / 4) != ano / 4)))) return false;
	if (!ano || ano.length != 4 || ano < 1900) return false;

	return true;
}

function validarHORA(HORA) {
	var tmp = HORA.split(':');

	var h = tmp[0];
	var i = tmp[1];

	if (!h || h.length != 2 || (h < 00 || h > 23)) return false;
	if (!i || i.length != 2 || (i < 00 || i > 59)) return false;

	return true;
}

function validarCPF(CPF) {
	CPF = limparValor(CPF);
	if (CPF && CPF != '') {
		var teste = (
			CPF.length != 11 || CPF == '00000000000'
			|| CPF == '11111111111' || CPF == '22222222222' || CPF == '33333333333'
			|| CPF == '44444444444' || CPF == '55555555555' || CPF == '66666666666'
			|| CPF == '77777777777' || CPF == '88888888888' || CPF == '99999999999'
		) ? false : true;

		var soma = 0;
		for (i = 0; i < 9; i++) soma += parseInt(CPF.charAt(i)) * (10 - i);
		resto = 11 - (soma % 11);
		if (resto == 10 || resto == 11) resto = 0;
		var digito1 = (resto != parseInt(CPF.charAt(9))) ? false : true;

		var soma = 0;
		for (i = 0; i < 10; i++) soma += parseInt(CPF.charAt(i)) * (11 - i);
		resto = 11 - (soma % 11);
		if (resto == 10 || resto == 11) resto = 0;
		var digito2 = (resto != parseInt(CPF.charAt(10))) ? false : true;

		if (teste && digito1 && digito2) return true;
		else return false;
	}
}

function validarCNPJ(CNPJ) {
	CNPJ = limparValor(CNPJ);
	if (CNPJ && CNPJ != '') {
		var teste = (CNPJ.length != 14) ? false : true;

		var a = [];
		var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];

		var soma = 0;
		for (i = 0; i < 12; i++) {
			a[i] = CNPJ.charAt(i);
			soma += a[i] * c[i + 1];
		}
		if ((resto = soma % 11) < 2) a[12] = 0;
		else a[12] = 11 - resto;

		var soma = 0;
		for (i = 0; i < 13; i++) soma += (a[i] * c[i]);
		if ((resto = soma % 11) < 2) a[13] = 0;
		else a[13] = 11 - resto;

		if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])) return false;

		if (!teste) return false;
		else return true;
		return true;
	}
}

acabei de identificar um na validação do e-mail

ta faltando pegar o tamanho da extensão do domínio...

if (usuario.length < 3 || dominio.length < 2 || extensao < 2) return false;

if (usuario.length < 3 || dominio.length < 2 || extensao.length < 2) return false;





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq