Codeme

Bem Vindo ao CODME
Cadastre-se agora para obter acesso a todos os nossos recursos. Uma vez cadastrado e logado, você será capaz de criar tópicos, postar respostas a tópicos já existentes, a reputação de seus companheiros, começar seu próprio mensageiro privado, atualizações pós status, gerenciar seu perfil e muito mais. Esta mensagem será removido depois de ter cadastrado.
Entrar na Conta Criar uma conta


Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

#1 Validação de CPF em Dom Out 27, 2013 3:37 am

Admin

avatar

Admin

Código:
def check_cpf(cpf=nil)
  return false if cpf.nil?
 
  winvalidos = %w{12345678909 11111111111 22222222222 33333333333 44444444444 55555555555 66666666666 77777777777 88888888888 99999999999 00000000000}
  wvalor = cpf.scan /[0-9]/
  if wvalor.length == 11
    unless winvalidos.member?(wvalor.join)
      wvalor = wvalor.collect{|x| x.to_i}
      wsoma = 10*wvalor[0]+9*wvalor[1]+8*wvalor[2]+7*wvalor[3]+6*wvalor[4]+5*wvalor[5]+4*wvalor[6]+3*wvalor[7]+2*wvalor[8]
      wsoma = wsoma - (11 * (wsoma/11))
      wresult1 = (wsoma == 0 or wsoma == 1) ? 0 : 11 - wsoma
      if wresult1 == wvalor[9]
        wsoma = wvalor[0]*11+wvalor[1]*10+wvalor[2]*9+wvalor[3]*8+wvalor[4]*7+wvalor[5]*6+wvalor[6]*5+wvalor[7]*4+wvalor[8]*3+wvalor[9]*2
        wsoma = wsoma - (11 * (wsoma/11))
        wresult2 = (wsoma == 0 or wsoma == 1) ? 0 : 11 - wsoma
        return true if wresult2 == wvalor[10] # CPF validado
      end
    end
  end
  return false # CPF invalidado
end

Ver perfil do usuário http://codme.umforum.net

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]


Permissão deste fórum:
Você não pode responder aos tópicos neste fórum