Validador de CEP
Digite o CEP e veja na hora se o formato está certo, com a máscara aplicada e a região postal do primeiro dígito.
Processamento local: nada do que você digita sai do seu navegador.
Como usar
Digite o CEP com ou sem hífen. O resultado aparece enquanto você digita e mostra o CEP com máscara (00000-000), só com números e a região postal indicada pelo primeiro dígito.
O que é verificado
O CEP não tem dígito verificador. A validação confere apenas o formato: 8 dígitos, com hífen opcional depois do quinto, e rejeita 00000-000. Esta ferramenta não consulta os Correios nem qualquer API, então não confirma que o CEP exista nem retorna o endereço. Para isso é preciso uma base ou serviço de CEP.
O primeiro dígito indica a região postal: 0 Grande São Paulo, 1 interior e litoral de SP, 2 RJ e ES, 3 MG, 4 BA e SE, 5 PE, AL, PB e RN, 6 CE, PI, MA, PA, AP, AM, RR e AC, 7 DF, GO, TO, MT, MS e RO, 8 PR e SC, 9 RS.
Como implementar em código
Exemplos prontos para usar no seu projeto.
// CEP: 8 dígitos, com ou sem hífen (só formato, não consulta se existe)
function cepValido(valor) {
const t = String(valor).trim();
return /^\d{5}-?\d{3}$/.test(t) && !/^0+$/.test(t.replace('-', ''));
}
function mascararCep(valor) {
return String(valor).replace(/\D/g, '').replace(/^(\d{5})(\d{3})$/, '$1-$2');
}
console.log(cepValido('01310-100'), mascararCep('01310100')); // true 01310-100import re
def cep_valido(valor: str) -> bool:
"""CEP: 8 dígitos, com ou sem hífen (só formato, não consulta se existe)."""
t = valor.strip()
return bool(re.fullmatch(r"\d{5}-?\d{3}", t)) and set(t.replace("-", "")) != {"0"}
def mascarar_cep(valor: str) -> str:
n = re.sub(r"\D", "", valor)
return f"{n[:5]}-{n[5:]}" if len(n) == 8 else n
print(cep_valido("01310-100"), mascarar_cep("01310100")) # True 01310-100import (
"regexp"
"strings"
)
var reCep = regexp.MustCompile(`^\d{5}-?\d{3}$`)
// CepValido confere só o formato (8 dígitos, hífen opcional).
func CepValido(valor string) bool {
t := strings.TrimSpace(valor)
return reCep.MatchString(t) && strings.Trim(strings.ReplaceAll(t, "-", ""), "0") != ""
}
// MascararCep converte 01310100 em 01310-100.
func MascararCep(valor string) string {
n := regexp.MustCompile(`\D`).ReplaceAllString(valor, "")
if len(n) != 8 {
return n
}
return n[:5] + "-" + n[5:]
}/// CEP: 8 dígitos, com ou sem hífen (só formato, não consulta se existe).
bool cepValido(String valor) {
final t = valor.trim();
return RegExp(r'^\d{5}-?\d{3}$').hasMatch(t) &&
!RegExp(r'^0+$').hasMatch(t.replaceAll('-', ''));
}
String mascararCep(String valor) {
final n = valor.replaceAll(RegExp(r'\D'), '');
return n.length == 8 ? '${n.substring(0, 5)}-${n.substring(5)}' : n;
}final class Validador {
/** CEP: 8 dígitos, com ou sem hífen (só formato, não consulta se existe). */
static boolean cepValido(String valor) {
String t = valor.trim();
return t.matches("\\d{5}-?\\d{3}") && !t.replace("-", "").matches("0+");
}
static String mascararCep(String valor) {
String n = valor.replaceAll("\\D", "");
return n.length() == 8 ? n.substring(0, 5) + "-" + n.substring(5) : n;
}
}<?php
// CEP: 8 dígitos, com ou sem hífen (só formato, não consulta se existe)
function cepValido(string $valor): bool {
$t = trim($valor);
return preg_match('/^\d{5}-?\d{3}$/', $t) === 1
&& !preg_match('/^0+$/', str_replace('-', '', $t));
}
function mascararCep(string $valor): string {
$n = preg_replace('/\D/', '', $valor);
return strlen($n) === 8 ? substr($n, 0, 5) . '-' . substr($n, 5) : $n;
}using System.Text.RegularExpressions;
public static class Validador
{
// CEP: 8 dígitos, com ou sem hífen (só formato, não consulta se existe)
public static bool CepValido(string valor)
{
var t = valor.Trim();
return Regex.IsMatch(t, @"^\d{5}-?\d{3}$") && !Regex.IsMatch(t.Replace("-", ""), @"^0+$");
}
public static string MascararCep(string valor)
{
var n = Regex.Replace(valor, @"\D", "");
return n.Length == 8 ? n.Substring(0, 5) + "-" + n.Substring(5) : n;
}
}Perguntas frequentes
O CEP tem dígito verificador?
Não. Por isso a validação é só de formato: 8 dígitos. Saber se o CEP existe exige uma consulta a uma base de CEPs.
Esta ferramenta traz o endereço do CEP?
Não. Ela roda inteira no navegador, sem consulta externa. Ela só valida o formato e aplica a máscara.
Qual é a regex de um CEP?
^\d{5}-?\d{3}$ aceita 8 dígitos com hífen opcional. Veja os exemplos de código abaixo.
Veja também
Precisa de um sistema ou app sob medida?
A VcInova desenvolve software, aplicativos e integrações para empresas de todo o Brasil.
Fale com a VcInova