sexta-feira, 27 de dezembro de 2002

Checagem de CPF

A função checkCPF() faz a checagem do CPF. Retorna true se estiver ok, ou false, caso contrário.

 


 


function checkCPF(strNumber)
{
   var result = true;
   var digit;
   var calc;

 

   strNumber = getNumber(strNumber);
   if (strNumber.length < 4) {
      result = false;
   }

 

   digit = parseInt(strNumber.substring(strNumber.length-2, strNumber.length));
   number = strNumber.substring(0 , strNumber.length - 2);

 

   calc = parseInt(getCPFDigit(number));

 

   if ( digit != calc )
   {
      result = false;
   }
   return result;
}

function getNumber(strNumber)
{
   var number;
   var strRetNumber="";

 

   for (var i=0 ; i < strNumber.length ; i++)
   {
      number = parseInt(strNumber.charAt(i));
      if ( number )
      {
         strRetNumber += strNumber.charAt(i)
      }
      else
      {
         if ( number == 0 )
         {
            strRetNumber += strNumber.charAt(i)
         }
      }
   }
   return strRetNumber;
}

 

function getCPFDigit(strNumber)
{
   var i;
   var digit1;
   var digit2;
   var total;
   var result;
  
   strNumber = '000000000' + getNumber(strNumber)
   strNumber = strNumber.substring(strNumber.length - 9, strNumber.length)

 

   total=0
   for (i = 1 ; i < 10; i++)
      total = total + strNumber.substring(i - 1 , i) * (11 - i);

 

   digit1 = total * 10 % 11;
   if (digit1 == 10)
   {
      digit1 = 0;
   }

 

   aux = digit1.toString(10);
   strNumber = strNumber + aux.substring(aux.length - 1 , aux.length);

 

   total=0;

 

   for (i = 1 ; i < 11 ; i++)
      total = total + strNumber.substring(i - 1 , i) * (12 - i);

 

   digit2 = total * 10 % 11;
   if (digit2 == 10)
   {
      digit2 = 0;
   }

 

   aux = digit1 * 10 + digit2;
   caux = aux.toString(10);
   result = caux.substring(caux.length - 2 , caux.length);

 

   return result;
}

 


--
Francisco Pinto Araújo Júnior
Diretor de Tecnologia - Softexport Informática
Msc. Ciência da Computação
SCPJ2
Fone/Fax: +55 85 458 1947
pinto@softexport.com.br
www.softexport.com.br


Esta matéria foi postada originalmente no ASP4Developers por Francisco Pinto Araujo Junior (site), que na época era "Analista de Sistemas". Hoje, vai saber...

0 comentários: