C# Valida CPF, CNPJ e E-mail com Regex e RegexOptions

Função que Valida CNPJ:

 

public static bool ValidaCNPJ(string CNPJ)
{
int[] CalcARR = null;
int Sum = 0;
int Multp = 0;
int DV1 = 0;
int DV2 = 0;
if (string.IsNullOrEmpty(CNPJ))
{
return true;
}
if (long.Parse(CNPJ) == 0)
{
return false;
}
if (CNPJ.Length != 14)
{
CNPJ = string.Format(“{0:D14}”, long.Parse(CNPJ));
}
CalcARR = new int[14];
for (int x = 0; x < CalcARR.Length; x++)
{
CalcARR[x] = int.Parse(CNPJ[x].ToString());
}
Multp = 5;
Sum = 0;
for (int x = 0; x < 12; x++)
{
Sum += CalcARR[x] * Multp;
Multp–;
if (Multp < 2)
{
Multp = 9;
}
}
Math.DivRem(Sum, 11, out DV1);
if (DV1 < 2)
{
DV1 = 0;
}
else
{
DV1 = 11 – DV1;
}
if (DV1 != CalcARR[12])
{
return false;
}
Multp = 6;
Sum = 0;
for (int x = 0; x < 13; x++)
{
Sum += CalcARR[x] * Multp;
Multp–;
if (Multp < 2)
{
Multp = 9;
}
}
Math.DivRem(Sum, 11, out DV2);
if (DV2 < 2)
{
DV2 = 0;
}
else
{
DV2 = 11 – DV2;
}
if (DV2 != CalcARR[13])
{
return false;
}
return true;
}

Função que Valida E-mail:

 

public static bool ValidaEmail(string Valor)
{
if (string.IsNullOrEmpty(Valor))
{
return true;
}
bool Valido = false;
Regex regEx = new Regex(@”^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$”, RegexOptions.IgnoreCase);
Valido = regEx.IsMatch(Valor);
return Valido;
}

Função que Valida CPF:

 

public static bool ValidaCPF(string CPF)
{
int[] CalcARR = null;
int Sum = 0;
int DV1 = 0;
int DV2 = 0;
if (string.IsNullOrEmpty(CPF))
{
return true;
}
if (long.Parse(CPF) == 0)
{
return false;
}
if (CPF.Length != 11)
{
CPF = string.Format(“{0:D11}”, long.Parse(CPF));
}
CalcARR = new int[11];
for (int x = 0; x < CalcARR.Length; x++)
{
CalcARR[x] = int.Parse(CPF[x].ToString());
}
Sum = 0;
for (int x = 1; x <= 9; x++) { Sum += CalcARR[x - 1] * (11 – x); } Math.DivRem(Sum, 11, out DV1); DV1 = 11 – DV1; DV1 = DV1 > 9 ? 0 : DV1;
if (DV1 != CalcARR[9])
{
return false;
}
Sum = 0;
for (int x = 1; x <= 10; x++) { Sum += CalcARR[x - 1] * (12 – x); } Math.DivRem(Sum, 11, out DV2); DV2 = 11 – DV2; DV2 = DV2 > 9 ? 0 : DV2;
if (DV2 != CalcARR[10])
{
return false;
}
return true;
}

1 thoughts on “C# Valida CPF, CNPJ e E-mail com Regex e RegexOptions

  1. Tudo bem Paulo, tenho uma rotina semelhante a sua rotina para validar os endereços de email, mas quando envio para um email que contenha hífen e da erro, mas pelo que vi hífen é um caracter válido para o endereço de email, substitui a minha rotina pela sua e continua gerando erro para o endereço, sabes me dizer se não posso usar o hífen no endereço?. (Exemplo de endereço antonio-lli@lar.ind.br)
    abs
    Edson

Deixe um comentário