
A expressão regular abaixo testa um código postal francês com a forma «DDDDD». Todos os algarismos são usados. Os dois primeiros indicam o departamento e vão de 01 a 98. O código seguinte é a expressão regular de um código postal para verificar se o formato está correto.
expressão regular código postal
/^(?:0[1-9]|[1-8]\d|9[0-8])\d{3}$/Deixo-te também expressões regulares de códigos postais de outros países, basta trocar a expressão pela de que precisas.
Bélgica
Códigos postais com a forma «DDDD», sendo o primeiro algarismo a província e os restantes os setores de distribuição. Os códigos postais belgas nunca começam por zero.
/^(?:(?:[1-9])(?:\d{3}))$/Suíça
Quatro algarismos: o primeiro é o distrito, o segundo a zona, o terceiro a rota, o quarto o número da estação de correios.
/^[1-9]\d{3}$/Reino Unido
Esquema do código postal britânico
/^(?:GIR 0AA|(?:(?:(?:A[BL]|B[ABDHLNRSTX]?|C[ABFHMORTVW]|D[ADEGHLNTY]|E[HNX]?|F[KY]|G[LUY]?|H[ADGPRSUX]|I[GMPV]|JE|K[ATWY]|L[ADELNSU]?|M[EKL]?|N[EGNPRW]?|O[LX]|P[AEHLOR]|R[GHM]|S[AEGK-PRSTY]?|T[ADFNQRSW]|UB|W[ADFNRSV]|YO|ZE)[1-9]?\d|(?:(?:E|N|NW|SE|SW|W)1|EC[1-4]|WC[12])[A-HJKMNPR-Y]|(?:SW|W)(?:[2-9]|[1-9]\d)|EC[1-9]\d)\d[ABD-HJLNP-UW-Z]{2}))$/iAlemanha
Códigos postais com a forma «DDDDD». Todos os algarismos são usados. O primeiro corresponde à zona de distribuição, o segundo à região de distribuição. Os restantes indicam o distrito de distribuição e a localidade postal.
/^\d{5}$/Espanha
Cinco algarismos, os dois primeiros indicam a província. Terceiro algarismo: cidade grande. Dois últimos algarismos: as zonas rurais.
/^(?:0[1-9]|[1-4]\d|5[0-2])\d{3}$/Itália
Primeiro algarismo: região. Segundo algarismo: província. Terceiro algarismo: capital ou província (ímpar para a capital). Quarto algarismo: itinerário. Quinto algarismo: local no itinerário (0 para os locais pequenos).
/^\d{5}$/Estados Unidos
Códigos ZIP com a forma «DDDDD» ou «DDDDD-DDDD». Todos os algarismos são usados e nenhum tem significado particular.
/^(?:GIR 0AA|(?:(?:(?:A[BL]|B[ABDHLNRSTX]?|C[ABFHMORTVW]|D[ADEGHLNTY]|E[HNX]?|F[KY]|G[LUY]?|H[ADGPRSUX]|I[GMPV]|JE|K[ATWY]|L[ADELNSU]?|M[EKL]?|N[EGNPRW]?|O[LX]|P[AEHLOR]|R[GHM]|S[AEGK-PRSTY]?|T[ADFNQRSW]|UB|W[ADFNRSV]|YO|ZE)[1-9]?\d|(?:(?:E|N|NW|SE|SW|W)1|EC[1-4]|WC[12])[A-HJKMNPR-Y]|(?:SW|W)(?:[2-9]|[1-9]\d)|EC[1-9]\d)\d[ABD-HJLNP-UW-Z]{2}))$/iVersão JavaScript da expressão regular para um código postal
O formato válido de um código postal é «DDDDD». A função recebe o código postal como parâmetro e compara-o com a expressão regular. Se não encontrar correspondência, a validação falha e a função devolve false, havendo correspondência, devolve true.
Função JavaScript de uma expressão regular para código postal
/**
* Valida um código postal com uma expressão regular
*
* Se o código postal não for válido, devolve false
*
* @param postcode
* @return Boolean
*/
function validatePostcode(postcode){
var Reg = new RegExp(/^(?:0[1-9]|[1-8]\d|9[0-8])\d{3}$/i);
return Reg.test(postcode);
}Como usar a função JavaScript
A melhor forma de a usar é dentro de uma condição IF, como abaixo.
if(validatePostcode(postcode)){
alert("Code postal valide");
} else {
alert("Code postal invalide");
}
See the Pen
Untitled by Damien Flandrin (@dam62500)
on CodePen.
Versão PHP da expressão regular para um código postal
Validar os códigos postais no front-end não chega: a mesma verificação tem de correr no servidor. Aqui fica um snippet PHP para validar códigos postais do lado do servidor.
Função PHP de uma expressão regular para código postal
/*
* valida o código postal
* @param $postcode
*/
function isValidPostcode($postcode)
{
return preg_match('/^(?:0[1-9]|[1-8]\d|9[0-8])\d{3}$/i', $postcode);
}Versão HTML
Em HTML, podes criar campos que indicam se o valor é válido através do atributo pattern de <input>, onde podes colocar uma expressão regular de código postal. Atenção: isto só serve para mostrar a informação visualmente ao utilizador, por exemplo com bordas vermelhas.
<input
name="postcode"
type="text"
pattern="(?:0[1-9]|[1-8]\d|9[0-8])\d{3}"
placeholder="DDDDD"
/>
See the Pen
Validar um código postal com uma expressão regular em HTML by Damien Flandrin (@dam62500)
on CodePen.


