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.
Validacao de RG: a pegadinha de nao existir algoritmo nacional
O RG (Registro Geral) e o documento de identidade emitido pelos estados brasileiros. Diferente de CPF, CNPJ ou RENAVAM, o RG nao tem algoritmo nacional de digito verificador. Cada SSP (Secretaria de Seguranca Publica) das 27 unidades federativas define o proprio formato, a propria quantidade de digitos e a propria regra de DV — ou regra nenhuma. Qualquer ferramenta que diga validar "RG" de forma universal esta, no melhor cenario, validando a regra de SP e silenciosamente rejeitando documentos validos de outros estados.
Esta pagina foca no que um validador realmente pode fazer: aplicar sintaxe por estado, rodar o modulo 11 de SP, sanitizar input, integrar com bibliotecas de formulario e sinalizar combinacoes suspeitas. Para um RG sintetico com DV SP valido, veja a ferramenta geradora correspondente.
O algoritmo do RG de SP (o unico publicado em uso amplo)
A regra da SSP/SP e a mais documentada e a unica que a maioria das bibliotecas realmente implementa. O numero tem 8 digitos mais um digito verificador, exibido como XX.XXX.XXX-D. O DV pode ser 0-9 ou X (10 em algarismo romano).
- Multiplique os 8 primeiros digitos pelos pesos 2, 3, 4, 5, 6, 7, 8, 9.
- Some os produtos.
resto = soma mod 11.- Se
resto == 10, DV = X; caso contrario 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 digitos com DV numerico; algoritmo nao publicado oficialmente, por isso bibliotecas caem em validacao so de formato.
- MG: formato
MG-XX.XXX.XXXcom letras como prefixo; sem formula publica de DV. - RS, BA, PE, PR, SC: variam entre 8 e 10 digitos; alguns usam DV sequencial sem modulo 11.
- DF: 8 digitos emitidos pela Policia Civil do DF; regra de DV nao divulgada.
- Policia Federal (RNE): estrangeiros tem um RNE (hoje CRNM) com padrao alfanumerico proprio.
Na pratica, um validador multi-estados deveria no maximo: (i) remover pontuacao, (ii) checar quantidade de digitos contra a UF emissora, (iii) rodar o modulo 11 quando o emissor for SP e (iv) rejeitar padroes obvios como 00000000-0.
Regex de pre-validacao 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 espacos antes de aplicar o algoritmo. Nunca faca lowercase depois da comparacao — 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 generica de formato, sem DV por estado.
- validador-br (PyPI): expoe
rgcom regra SP e modosomente_formato. - geekcom/validator-docs (Laravel): regra
'rg'valida apenas SP por padrao.
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 numero unico nacional. O cartao e policarbonato, traz assinatura digital ICP-Brasil e um QR Code para verificacao offline. O plano do governo substitui os 27 RGs estaduais pela CIN ate 2032. Apos a migracao 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 varios RGs (um por estado) — uma anomalia historica. Fluxos solidos de onboarding cruzam pelo menos tres campos:
- Numero do RG com UF emissora e SSP-orgao expedidor.
- CPF validado pelo proprio modulo 11.
- Data de nascimento e nome completo para consultar Serasa, Boa Vista ou Quod.
Fornecedores modernos de KYC (Idwall, Unico, Stripe Identity Brasil, AcessoBio) cada vez mais abandonam o RG e apostam em CPF + biometria facial, contando com o rollout completo da CIN nos proximos cinco anos.
Nao ha API governamental de consulta
Nao existe API publica de consulta de RG. Cada SSP estadual roda um sistema fechado, acessivel so a policia e a orgaos parceiros. Mesmo a CIN, apesar das assinaturas digitais, nao 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 validacao de RG sempre sera sintatica no cliente, nunca autoritativa.
FAQ
Existe um algoritmo unico nacional de RG? Nao. Apenas SP tem regra publica de modulo 11. Os demais estados nao divulgam a formula 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 ate 2032. Novas emissoes ja saem como CIN, mas RGs existentes seguem validos durante a transicao.
Da para validar RG online por API do governo? Nao. Nao ha endpoint publico. Qualquer servico que diz "verificar RG" esta so checando formato, ou comprando dados de bureau privado.
O RG vence? Juridicamente nao, mas bancos e aeroportos rejeitam documentos com foto de mais de 10 anos. A CIN introduz renovacao 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.