Validador de RG
Valide números de RG no formato SP (9 dígitos + dígito verificador). Verificação no navegador, sem enviar dados para servidores.
Como funciona a validação do RG de SP?
O RG paulista carrega 8 dígitos de base e 1 verificador. Para chegar a esse verificador, somam-se os 8 dígitos ponderados pelos pesos [2,3,4,5,6,7,8,9] e tira-se o módulo 11 do resultado. Resto 0 significa verificador 0; resto 1 vira X; em qualquer outro caso, o verificador é 11 menos o resto.
Tudo isso é processado dentro do próprio navegador.
Validação de RG: a pegadinha de não existir algoritmo nacional
O RG (Registro Geral) e o documento de identidade emitido pelos estados brasileiros. Diferente de CPF, CNPJ ou RENAVAM, o RG não tem algoritmo nacional de dígito verificador. Cada SSP (Secretaria de Segurança Publica) das 27 unidades federativas define o próprio formato, a própria quantidade de dígitos e a própria regra de DV — ou regra nenhuma. Qualquer ferramenta que diga validar "RG" de forma universal esta, no melhor cenário, validando a regra de SP e silenciosamente rejeitando documentos válidos de outros estados.
Esta página foca no que um validador realmente pode fazer: aplicar sintaxe por estado, rodar o modulo 11 de SP, sanitizar input, integrar com bibliotecas de formulário e sinalizar combinações suspeitas. Para um RG sintético com DV SP válido, veja a ferramenta geradora correspondente.
O algoritmo do RG de SP (o único publicado em uso amplo)
A regra da SSP/SP e a mais documentada e a única que a maioria das bibliotecas realmente implementa. O número tem 8 dígitos mais um dígito verificador, exibido como XX.XXX.XXX-D. O DV pode ser 0-9 ou X (10 em algarismo romano).
- Multiplique os 8 primeiros dígitos pelos pesos 2, 3, 4, 5, 6, 7, 8, 9.
- Some os produtos.
resto = soma mod 11.- Se
resto == 10, DV = X; caso contrário DV =resto.
function validarRgSP(valor) {
const raw = String(valor).replace(/[^0-9X]/gi, '').toUpperCase();
if (raw.length !== 9) return false;
const digitos = raw.slice(0, 8);
const dv = raw[8];
if (!/^\d{8}$/.test(digitos)) return false;
const pesos = [2, 3, 4, 5, 6, 7, 8, 9];
const soma = pesos.reduce((a, p, i) => a + Number(digitos[i]) * p, 0);
const r = soma % 11;
const esperado = r === 10 ? 'X' : String(r);
return esperado === dv;
}
Outros estados: o que muda
- RJ (Detran/IFP): normalmente 9 dígitos com DV numérico; algoritmo não publicado oficialmente, por isso bibliotecas caem em validação so de formato.
- MG: formato
MG-XX.XXX.XXXcom letras como prefixo; sem fórmula publica de DV. - RS, BA, PE, PR, SC: variam entre 8 e 10 dígitos; alguns usam DV sequencial sem modulo 11.
- DF: 8 dígitos emitidos pela Policia Civil do DF; regra de DV não divulgada.
- Policia Federal (RNE): estrangeiros tem um RNE (hoje CRNM) com padrão alfanumérico próprio.
Na pratica, um validador multi-estados deveria no máximo: (i) remover pontuação, (ii) checar quantidade de dígitos contra a UF emissora, (iii) rodar o modulo 11 quando o emissor for SP e (iv) rejeitar padrões obvios como 00000000-0.
Regex de pre-validação e mascaras
// Aceita pontuacao, mas trata X so na ultima posicao
const RG_SP_RE = /^\d{1,2}\.?\d{3}\.?\d{3}-?[0-9Xx]$/;
const limpo = input.replace(/[^0-9Xx]/g, '').toUpperCase();
Cuidado: o input deve aceitar tanto a forma mascarada 12.345.678-X como a forma sem mascara 12345678X. Remova pontos, hifens e espaços antes de aplicar o algoritmo. Nunca faca lowercase depois da comparação — coloque o input em uppercase antes.
Bibliotecas JavaScript, Python e Laravel
- brazilian-values (npm): traz
isRG(), mas documenta explicitamente o escopo SP. - brazilian-utils (npm): checagem genérica de formato, sem DV por estado.
- validador-br (PyPI): expõe
rgcom regra SP e modosomente_formato. - geekcom/validator-docs (Laravel): regra
'rg'valida apenas SP por padrão.
CIN: a carteira nacional que vai substituir o RG
Criada pela Lei 13.444/2017 e implantada progressivamente desde 2023, a Carteira de Identidade Nacional (CIN) reaproveita o CPF como número único nacional. O cartão e policarbonato, traz assinatura digital ICP-Brasil e um QR Code para verificação offline. O plano do governo substitui os 27 RGs estaduais pela CIN até 2032. Após a migração completa, "validar RG" vira "validar CPF + assinatura" — muito mais simples e finalmente uniforme.
Antifraude: cruzar RG com CPF e data de nascimento
Um RG sozinho e prova fraca de identidade, especialmente porque um brasileiro pode legalmente ter vários RGs (um por estado) — uma anomalia histórica. Fluxos solidos de onboarding cruzam pelo menos três campos:
- Número do RG com UF emissora e SSP-órgão expedidor.
- CPF validado pelo próprio modulo 11.
- Data de nascimento e nome completo para consultar Serasa, Boa Vista ou Quod.
Fornecedores modernos de KYC (Idwall, Único, Stripe Identity Brasil, AcessoBio) cada vez mais abandonam o RG e apostam em CPF + biometria facial, contando com o rollout completo da CIN nos próximos cinco anos.
Não ha API governamental de consulta
Não existe API publica de consulta de RG. Cada SSP estadual roda um sistema fechado, acessível so a policia e a orgaos parceiros. Mesmo a CIN, apesar das assinaturas digitais, não tem endpoint aberto — o QR Code e lido por um app do TSE que chama um backend restrito do gov.br. Estruturalmente diferente do CPF (que tem consulta gratuita na RFB) e significa que validação de RG sempre sera sintatica no cliente, nunca autoritativa.
FAQ
Existe um algoritmo único nacional de RG? Não. Apenas SP tem regra publica de modulo 11. Os demais estados não divulgam a fórmula do DV.
Por que meu RG termina com X? O X representa 10 no algoritmo modulo 11 de SP. Cerca de 9% dos RGs de SP terminam em X.
A CIN substitui o RG? Sim, gradualmente até 2032. Novas emissões ja saem como CIN, mas RGs existentes seguem válidos durante a transição.
Da para validar RG online por API do governo? Não. Não ha endpoint público. Qualquer serviço que diz "verificar RG" esta so checando formato, ou comprando dados de bureau privado.
O RG vence? Juridicamente não, mas bancos e aeroportos rejeitam documentos com foto de mais de 10 anos. A CIN introduz renovação recomendada a cada 10 anos.
Valide um número de RG (formato SP)
No formato de São Paulo, o RG tem nove dígitos, e o último é um verificador calculado a partir dos demais. Este validador refaz esse cálculo e diz se o número está bem formado, o que ajuda a flagrar erros de digitação em cadastros.
Serve para conferir um formulário, validar uma planilha ou limpar uma base com RGs paulistas. Só lembre que o RG não tem um padrão nacional único como o CPF, cada estado tem o seu. Por isso esta validação vale especificamente para o formato de SP.
A verificação acontece inteira no navegador, sem mandar nada para servidores. Pode conferir documentos reais sem preocupação: o que você digita não sai do dispositivo.
Ferramentas Relacionadas
Validador de Título de Eleitor
Valide títulos de eleitor pelo algoritmo oficial do TSE, sem enviar dados para servidores. Gratuito e sem cadastro.
Validador de PIS/PASEP
Valide números de PIS/PASEP pelo algoritmo oficial com dígito verificador, sem enviar dados para servidores. Gratuito e sem cadastro.
Validador de CNH
Valide números de CNH pelo algoritmo oficial do DETRAN, sem enviar dados para servidores. Gratuito e sem cadastro.
Validador de CPF
Valide CPFs instantaneamente pelo algoritmo oficial da Receita Federal, sem enviar dados para nenhum servidor. Gratuito e sem cadastro.
Validador de URL
Verifique se uma URL é válida e analise suas partes: protocolo, domínio, caminho, parâmetros e hash. Processado no navegador.
Validador de RENAVAM
Valide números de RENAVAM pelo algoritmo oficial do DENATRAN, sem enviar dados para servidores. Gratuito e sem cadastro.