Por tarefa
Início rápido
A validação de CPF em um método, sem nenhuma gem:
Ruby
def valid_cpf?(cpf)
cpf = cpf.gsub(/\D/, '')
return false if cpf.length != 11 || cpf.chars.uniq.length == 1
(9..10).each do |i|
soma = (0...i).sum { |j| cpf[j].to_i * ((i + 1) - j) }
dv = (soma * 10 % 11) % 10
return false if dv != cpf[i].to_i
end
true
endPágina completa, com a função inteira e os casos de borda: validar CPF em Ruby.
publicidade
Prefere uma gem?
Para projetos maiores, vale usar uma gem mantida: cpf_cnpj (de fnando) já traz validação, geração e formatação de CPF e CNPJ — e suporta o formato alfanumérico. Outra opção é brazilian_documents (de fidelisrafael). Confirme o suporte ao CNPJ alfanumérico na versão que você instalar.
Continue
Perguntas frequentes
Preciso de alguma gem para validar CPF e CNPJ em Ruby?
Não. As funções usam só a biblioteca padrão (regex e
String#chars). Para projetos maiores, há gems mantidas como cpf_cnpj (de fnando, que já suporta o alfanumérico) e brazilian_documents (de fidelisrafael).O mesmo código valida o CNPJ alfanumérico de 2026?
Sim. A função
valid_cnpj? trata a base como 12 caracteres alfanuméricos (A–Z, 0–9) com a conversão caractere.ord − 48; o numérico é caso particular. Os 2 dígitos verificadores continuam sempre numéricos.Válido é o mesmo que existir?
Não. As funções conferem a consistência matemática (módulo 11), não se o documento foi emitido pela Receita Federal.
Código em Ruby verificado. Algoritmo módulo 11 (numérico e alfanumérico). Revisado em 06/2026.