Com esta função você pode validar CPFs, há duas versões, uma para PHP e outra em JS. Bom proveito.

Versão PHP:

  1. function validaCPF($cpf) {
  2.     $cpf = soNumero($cpf);
  3.     $soma = 0;
  4.  
  5.     for ($i = 0; $i < 9; $i++)  {
  6.         $soma += (10$i) * $cpf[$i];
  7.         }
  8.     $digitoVerificador = 11($soma % 11);
  9.  
  10.     if(($soma % 11) < 2) {
  11.         $digitoVerificador = 0;
  12.         }
  13.     if($cpf[9] != $digitoVerificador) {
  14.         return false;
  15.         }
  16.     $soma = 0;
  17.  
  18.     for ($i = 0; $i < 9; $i++)  {
  19.         $soma += (11$i) * $cpf[$i];
  20.         }
  21.     $soma += 2 * $cpf[9];
  22.     $digitoVerificador = 11($soma % 11);
  23.    
  24.     if(($soma % 11) < 2) {
  25.         $digitoVerificador = 0;
  26.         }
  27.     if($cpf[10] != $digitoVerificador) {
  28.         return false;
  29.         }
  30.     return true;
  31. }

Versão Javascript:

  1. function validaCPF(cpf) {
  2.         cpf = soNumero(cpf);
  3.         soma = 0;
  4.        
  5.         for (i = 0; i < 9; i++) {
  6.                 soma += (10 – i) * (eval(cpf.charAt(i)));
  7.         }
  8.         digitoVerificador = 11(soma % 11);
  9.        
  10.         if((soma % 11) < 2) {
  11.                 digitoVerificador = 0;
  12.         }
  13.         if(eval(cpf.charAt(9)) != digitoVerificador) {
  14.                 return false;
  15.         }
  16.         soma = 0;
  17.        
  18.         for (i = 0; i < 9; i++) {
  19.                 soma += (11 – i) * (eval(cpf.charAt(i)));
  20.         }
  21.         soma += 2 * (eval(cpf.charAt(9)));
  22.         digitoVerificador = 11(soma % 11);
  23.        
  24.         if((soma % 11) < 2) {
  25.                 digitoVerificador = 0;
  26.         }
  27.         if(eval(cpf.charAt(10)) != digito_verificador) {
  28.                 return false;
  29.         }
  30.         return true;
  31. }