Don't like ads? PRO users don't see any ads ;-)
Guest

Stockholder

By: a guest on May 15th, 2012  |  syntax: JavaScript  |  size: 1.65 KB  |  hits: 23  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1.                         jQuery.validator.addMethod("cnpj", function(cnpj, element) {
  2.                            cnpj = jQuery.trim(cnpj);// retira espaços em branco
  3.                            // DEIXA APENAS OS NÚMEROS
  4.                            cnpj = cnpj.replace('/','');
  5.                            cnpj = cnpj.replace('.','');
  6.                            cnpj = cnpj.replace('.','');
  7.                            cnpj = cnpj.replace('-','');
  8.  
  9.                            var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais;
  10.                            digitos_iguais = 1;
  11.  
  12.                            if (cnpj.length < 14 && cnpj.length < 15){
  13.                                 return false;
  14.                            }
  15.                            for (i = 0; i < cnpj.length - 1; i++){
  16.                                 if (cnpj.charAt(i) != cnpj.charAt(i + 1)){
  17.                                         digitos_iguais = 0;
  18.                                         break;
  19.                                 }
  20.                            }
  21.  
  22.                            if (!digitos_iguais){
  23.                                 tamanho = cnpj.length - 2
  24.                                 numeros = cnpj.substring(0,tamanho);
  25.                                 digitos = cnpj.substring(tamanho);
  26.                                 soma = 0;
  27.                                 pos = tamanho - 7;
  28.  
  29.                                 for (i = tamanho; i >= 1; i--){
  30.                                         soma += numeros.charAt(tamanho - i) * pos--;
  31.                                         if (pos < 2){
  32.                                                 pos = 9;
  33.                                         }
  34.                                 }
  35.                                 resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
  36.                                 if (resultado != digitos.charAt(0)){
  37.                                         return false;
  38.                                 }
  39.                                 tamanho = tamanho + 1;
  40.                                 numeros = cnpj.substring(0,tamanho);
  41.                                 soma = 0;
  42.                                 pos = tamanho - 7;
  43.                                 for (i = tamanho; i >= 1; i--){
  44.                                         soma += numeros.charAt(tamanho - i) * pos--;
  45.                                         if (pos < 2){
  46.                                                 pos = 9;
  47.                                         }
  48.                                 }
  49.                                 resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
  50.                                 if (resultado != digitos.charAt(1)){
  51.                                         return false;
  52.                                 }
  53.                                 return true;
  54.                            }else{
  55.                                 return false;
  56.                            }
  57.                         }, "&nbsp;&nbsp;&nbsp; CNPJ inválido"); // Mensagem padrão