classe validar em c#

34
Validar em C#: Cpf, Cnpj, Insc. Est. Adriano Boller

Upload: adriano-boller

Post on 24-Dec-2014

1.818 views

Category:

Technology


1 download

DESCRIPTION

Validação em C# para ser utilizado em campos obrigatórios de um formulário, com a finalidade de evitar dados inconsistentes na base de dados.

TRANSCRIPT

  • 1. Adriano Boller

2. Classe Util.cs// Classe Util// Desenvolvedor C#: Adriano Jose Boller// 17/07/2012using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Text.RegularExpressions;using System.Runtime.InteropServices; //Dll Sintegra 3. namespace Form{Viso Total class Util{//Dll Sintegra da Classe//NomeValido//ContemLetras//ContemNumeros//ContemLetrasENumeros//NumeroInterioValido//NumeroRealValido//CepValido//EmailValido//UrlValida//IpValido//DataValida//TelefoneValido//CpfValido//CnpjValido//InscEstadualValida}} Veremos agora detalhadamente... 4. Dll Sintegra#region Dll Sintegra//Nesta Parte do cdigo, inserimos a referncia aDLL que j est registrada.[DllImport("DllInscE32.dll")] //Mtodo static extern ConsisteInscricaoEstadual que retornar a validao da IE static extern bool ConsisteInscricaoEstadual(string Inscr, string UF); #endregion 5. NomeValido#region NomeValidopublic bool NomeValido(string nome){Regex rgx = new Regex(@"^[aA-zZ]+((s[aA-zZ]+)+)?$");if (rgx.IsMatch(nome)) return true;else return false;}#endregion 6. ContemLetras#region ContemLetraspublic bool contemLetras(string letras){if (letras.Where(c => char.IsLetter(c)).Count() > 0) return true;else return false;}#endregion 7. ContemNumeros#region ContemNumerospublic bool contemNumeros(string numeros){if (numeros.Where(c => char.IsNumber(c)).Count() > 0) return true;else return false;}#endregion 8. ContemLetrasENumeros#region ContemLetrasEnumerospublic bool ContemLetrasEnumeros(string texto){if (this.contemLetras(texto) && this.contemNumeros(texto)) return true;else return false;}#endregion 9. NumeroInteiroValido#region NumeroInteiroValidopublic bool NumeroInteiroValido(string numero){Regex rgx = new Regex(@"^[0-9]+$");if (rgx.IsMatch(numero)) return true;else return false;}#endregion 10. NumeroRealValido#region NumeroRealValidopublic bool NumeroRealValido(string numeroreal){Regex rgx = new Regex(@"^[0-9]+?(.|,[0-9]+)$");if (rgx.IsMatch(numeroreal)) return true;else return false;}#endregion 11. NumeroRealValido#region CepValidopublic bool CepValido(string cep){Regex rgx = new Regex(@"^d{5}-?d{3}$");if (rgx.IsMatch(cep)){ return true;}else{ return false;}}#endregion 12. EmailValido#region EmailValidopublic bool EmailValido(string email){Regex rgx = new Regex(@"^[A-Za-z0-9](([_.-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([.-]?[a-zA-Z0-9]+)*).([A-Za-z]{2,})$");if (rgx.IsMatch(email)){ return true;}else{ return false;}}#endregion 13. UrlValida#region UrlValidapublic bool UrlValida(string http){Regex rgx = new Regex(@"^((http)|(https)|(ftp))://([-w]+.)+w{2,3}(/ [%-w]+(.w{2,})?)*$");if (rgx.IsMatch(http)){ return true;}else{ return false;}}#endregion 14. IpValido#region IpValidopublic bool IpValido(string ip){Regex rgx = new Regex(@"^bd{1,3}.d{1,3}.d{1,3}.d{1,3}b$");if (rgx.IsMatch(ip)){ return true;}else{ return false;}}#endregion 15. DataValida#region DataValida public bool DataValida(string data) {Regex rgx = new Regex(@"^((0[1-9]|[12]d)/(0[1-9]|1[0-2])|30/(0[13- 9]|1[0-2])|31/(0[13578]|1[02]))/d{4}$"); if (rgx.IsMatch(data)) {return true; } else {return false; }}#endregion 16. TelefoneValido#region TelefoneValidopublic bool TelefoneValido(string telefone){ Regex rgx = new Regex(@"^([0-9]{2})s[0-9]{4}-[0-9]{4}$"); if (rgx.IsMatch(telefone)){ return true;}else{ return false;}}#endregion 17. CpfValido#region CpfValidopublic bool CpfValido(string cpf){// Se vazioif (cpf.Length == 0)return false;//Expressao regular que valida cpfRegex rgx = new Regex(@"^d{3}.?d{3}.?d{3}-?d{2}$");if (rgx.IsMatch(cpf)){ return true;}else{ return false;} Continuao... 18. CpfValido// Limpa caracteres especiais pontos e espaos cpf = cpf.Trim(); cpf = cpf.Replace(".", "").Replace("-", "").Replace("/", "").Replace(" ", ""); cpf = cpf.Replace("+", "").Replace("*", "").Replace(",", "").Replace("?", ""); cpf = cpf.Replace("!", "").Replace("@", "").Replace("#", "").Replace("$", ""); cpf = cpf.Replace("%", "").Replace("", "").Replace("&", "").Replace("(", ""); cpf = cpf.Replace("=", "").Replace("[", "").Replace("]", "").Replace(")", ""); cpf = cpf.Replace("{", "").Replace("}", "").Replace(":", "").Replace(";", ""); cpf = cpf.Replace("", "").Replace("", "").Replace("", "");Continuao... 19. CpfValido// Limpa caracteres especiais pontos e espaos cpf = cpf.Trim(); cpf = cpf.Replace(".", "").Replace("-", "").Replace("/", "").Replace(" ", ""); cpf = cpf.Replace("+", "").Replace("*", "").Replace(",", "").Replace("?", ""); cpf = cpf.Replace("!", "").Replace("@", "").Replace("#", "").Replace("$", ""); cpf = cpf.Replace("%", "").Replace("", "").Replace("&", "").Replace("(", ""); cpf = cpf.Replace("=", "").Replace("[", "").Replace("]", "").Replace(")", ""); cpf = cpf.Replace("{", "").Replace("}", "").Replace(":", "").Replace(";", ""); cpf = cpf.Replace("", "").Replace("", "").Replace("", "");// Se so tem numerosif (this.contemLetras(cpf)) return false;else return true;Continuao... 20. CpfValido// Se o tamanho for < 11 entao retorna como invlidoif (cpf.Length != 11) return false;// Caso coloque todos os numeros iguaisswitch (cpf){ case "11111111111":return false; case "00000000000":return false; case "2222222222":return false; case "33333333333":return false; case "44444444444":return false; case "55555555555":return false; case "66666666666":return false; case "77777777777":return false; case "88888888888":return false; case "99999999999":return false;} Continuao... 21. CpfValido// Calcula Validade do CPF int[] multiplicador1 = new int[9] { 10, 9, 8, 7, 6, 5, 4, 3, 2 }; int[] multiplicador2 = new int[10] { 11, 10, 9, 8, 7, 6, 5, 4, 3, 2 }; string tempCpf; string digito; int soma; int resto; cpf = cpf.Trim(); cpf = cpf.Replace(".", "").Replace("-", ""); Continuao... 22. CpfValidoif (cpf.Length != 11)return false;tempCpf = cpf.Substring(0, 9);soma = 0;for (int i = 0; i < 9; i++)soma +=int.Parse(tempCpf[i].ToString()) * multiplicador1[i];resto = soma % 11;if (resto < 2) resto = 0;else resto = 11 - resto; digito = resto.ToString(); tempCpf = tempCpf + digito; soma = 0;Continuao... 23. CpfValidofor (int i = 0; i < 10; i++) soma += int.Parse(tempCpf[i].ToString()) * multiplicador2[i]; resto = soma % 11;if (resto < 2) resto = 0;else resto = 11 - resto; digito = digito + resto.ToString(); return cpf.EndsWith(digito); }#endregion ok 24. CnpjValido#region CnpjValido public bool CnpjValido(string cnpj){// Se vazioif (cnpj.Length == 0) return false;//Expressao regular que valida cpfRegex rgx = new Regex(@"^d{2}.?d{3}.?d{3}/?d{4}-?d{2}$");if (rgx.IsMatch(cnpj)){ return true;}else{ return false;} Continuao... 25. CnpjValido// Limpa caracteres especiais cnpj = cnpj.Trim(); cnpj = cnpj.Replace(".", "").Replace("-", "").Replace("/", "").Replace(" ", ""); cnpj = cnpj.Replace("+", "").Replace("*", "").Replace(",", "").Replace("?", ""); cnpj = cnpj.Replace("!", "").Replace("@", "").Replace("#", "").Replace("$", ""); cnpj = cnpj.Replace("%", "").Replace("", "").Replace("&", "").Replace("(", ""); cnpj = cnpj.Replace("=", "").Replace("[", "").Replace("]", "").Replace(")", ""); cnpj = cnpj.Replace("{", "").Replace("}", "").Replace(":", "").Replace(";", ""); cnpj = cnpj.Replace("", "").Replace("", "").Replace("", "");// Se comtem letrasif (this.contemLetras(cnpj)) return false;else return true;// Se o tamanho for < 11 entao retorna como invlidoif (cnpj.Length != 14) return false;Continuao... 26. CnpjValido// Caso coloque todos os numeros iguais switch (cnpj) {//00000000000000 case "11111111111111":return false; case "00000000000000":return false; case "22222222222222":return false; case "33333333333333":return false; case "44444444444444":return false; case "55555555555555":return false; case "66666666666666":return false; case "77777777777777":return false; case "88888888888888":return false; case "99999999999999":return false; }Continuao... 27. CnpjValidoint[] multiplicador1 = new int[12] { 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 };int[] multiplicador2 = new int[13] { 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 };int soma;int resto;string digito;string tempCnpj;cnpj = cnpj.Trim();cnpj = cnpj.Replace(".", "").Replace("-", "").Replace("/", ""); Continuao... 28. CnpjValidoif (cnpj.Length != 14)return false;tempCnpj = cnpj.Substring(0, 12);soma = 0;for (int i = 0; i < 12; i++)soma +=int.Parse(tempCnpj[i].ToString()) * multiplicador1[i];resto = (soma % 11); Continuao... 29. CnpjValidoif (resto < 2) resto = 0;else resto = 11 - resto; digito = resto.ToString(); tempCnpj = tempCnpj + digito;soma = 0;for (int i = 0; i < 13; i++)soma += int.Parse(tempCnpj[i].ToString()) * multiplicador2[i];resto = (soma % 11); Continuao... 30. CnpjValidoif (resto < 2)resto = 0;elseresto = 11 - resto;digito = digito + resto.ToString();return cnpj.EndsWith(digito);}#endregion 31. InscEstadualValida#region InscEstadualValida// Copiar o arquivo DllInscE32.dll para o diretrio c:windowsSystem32;public bool InscEstadualValida(string pInsc, string pUF) { // Se vazio if (pInsc.Length == 0)return false; // Limpa caracteres especiais pInsc = pInsc.Trim(); pInsc = pInsc.Replace(".", "").Replace("-", "").Replace("/", "").Replace(" ", ""); pInsc = pInsc.Replace("+", "").Replace("*", "").Replace(",", "").Replace("?", ""); pInsc = pInsc.Replace("!", "").Replace("@", "").Replace("#", "").Replace("$", ""); pInsc = pInsc.Replace("%", "").Replace("", "").Replace("&", "").Replace("(", ""); pInsc = pInsc.Replace("=", "").Replace("[", "").Replace("]", "").Replace(")", ""); pInsc = pInsc.Replace("{", "").Replace("}", "").Replace(":", "").Replace(";", ""); pInsc = pInsc.Replace("", "").Replace("", "").Replace("", "");//Caso a Inscrico e o Estado Estejam Certos, Retorna Verdadeiroif (ConsisteInscricaoEstadual(pInsc.Replace(".", "").Replace("-", ""), pUF)) return false;else return true;}#endregion}} 32. Para testar a Classe:private void buttonVerificaInscricaoEstadual_Click(object sender, EventArgs e){string pUF = cUF.Text;string pInsc = cInsc.Text; cInsc.Text = cInsc.Text.Replace(" ", ""); cInsc.Text = cInsc.Text.Replace("+", "").Replace("*", "").Replace(",", "").Replace("?", ""); cInsc.Text = cInsc.Text.Replace("!", "").Replace("@", "").Replace("#", "").Replace("$", ""); cInsc.Text = cInsc.Text.Replace("%", "").Replace("", "").Replace("&", "").Replace("(", ""); cInsc.Text = cInsc.Text.Replace("=", "").Replace("[", "").Replace("]", "").Replace(")", ""); cInsc.Text = cInsc.Text.Replace("{", "").Replace("}", "").Replace(":", "").Replace(";", ""); cInsc.Text = cInsc.Text.Replace("", "").Replace("", "").Replace("", ""); Util util = new Util(); if (util.InscEstadualValida(pInsc, pUF) == true) { MessageBox.Show("Inscrio Vlida"); } else { MessageBox.Show("Inscrio InVlida"); } } 33. Para testar a Classe:private void buttonVerificaCPF_Click(object sender, EventArgs e){string pCPF = cCPF.Text; cCPF.Text = cCPF.Text.Replace(" ", ""); cCPF.Text = cCPF.Text.Replace("+", "").Replace("*", "").Replace(",", "").Replace("?", ""); cCPF.Text = cCPF.Text.Replace("!", "").Replace("@", "").Replace("#", "").Replace("$", ""); cCPF.Text = cCPF.Text.Replace("%", "").Replace("", "").Replace("&", "").Replace("(", ""); cCPF.Text = cCPF.Text.Replace("=", "").Replace("[", "").Replace("]", "").Replace(")", ""); cCPF.Text = cCPF.Text.Replace("{", "").Replace("}", "").Replace(":", "").Replace(";", ""); cCPF.Text = cCPF.Text.Replace("", "").Replace("", "").Replace("", ""); Util util = new Util(); if (util.CpfValido(pCPF) == true) {MessageBox.Show("CPF Vlido"); } else {MessageBox.Show("CPF InVlido"); } } 34. Muito Obrigado!...