Ferramentas / Validador de CEP

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-100
    import 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-100
    import (
    	"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