
La siguiente expresión regular permite comprobar un código postal francés con el formato «DDDDD». Se usan todos los dígitos. Los dos primeros indican el departamento y van del 01 al 98. El código de abajo es la expresión regular de un código postal para comprobar si el formato es correcto.
expresión regular código postal
/^(?:0[1-9]|[1-8]\d|9[0-8])\d{3}$/Te dejo también varias expresiones regulares de códigos postales según el país: solo tienes que sustituir la expresión por la que necesites.
Bélgica
Códigos postales con el formato «DDDD»: el primer dígito representa la provincia y los demás los sectores de distribución. Los códigos postales no empiezan por cero.
/^(?:(?:[1-9])(?:\d{3}))$/Suiza
Cuatro dígitos: el primero es el distrito, el segundo la zona, el tercero la ruta y el cuarto el número de la oficina de correos.
/^[1-9]\d{3}$/Reino Unido
Esquema del 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}))$/iAlemania
Códigos postales con el formato «DDDDD». Se usan todos los dígitos. El primero corresponde a la zona de distribución y el segundo a la región de distribución. Los demás indican el distrito de reparto y la localidad postal.
/^\d{5}$/España
Cinco dígitos: los dos primeros indican la provincia. Tercer dígito: gran ciudad. Dos últimos dígitos: las zonas rurales.
/^(?:0[1-9]|[1-4]\d|5[0-2])\d{3}$/Italia
Primer dígito: región. Segundo dígito: provincia. Tercer dígito: capital o provincia (impar para la capital). Cuarto dígito: itinerario. Quinto dígito: localidad del itinerario (0 para las localidades pequeñas).
/^\d{5}$/Estados Unidos
Códigos postales con el formato «DDDDD» o «DDDDD-DDDD». Se usan todos los dígitos y ninguno tiene un 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}))$/iVersión en JavaScript de la expresión regular para un código postal
El formato de código postal válido es «DDDDD». La función recibe el código postal como parámetro y lo compara con la expresión regular. Si no encuentra ninguna coincidencia, la validación falla y devuelve false, si la encuentra, devuelve true.
Función JavaScript de una expresión regular de código postal
/**
* Valida un código postal con una expresión regular
*
* Si el código postal no es válido, devuelve 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);
}Cómo usar la función JavaScript
La mejor forma de usarla es dentro de una condición IF, como aquí abajo.
if(validatePostcode(postcode)){
alert("Code postal valide");
} else {
alert("Code postal invalide");
}
See the Pen
Untitled by Damien Flandrin (@dam62500)
on CodePen.0
Versión en PHP de la expresión regular para un código postal
Para asegurarte de que los códigos postales son correctos, además del control en el front conviene validar también en el servidor. Aquí tienes un snippet en PHP para validar códigos postales del lado del servidor.
Función PHP de una expresión regular de código postal
/*
* valida el código postal
* @param $postcode
*/
function isValidPostcode($postcode)
{
return preg_match('/^(?:0[1-9]|[1-8]\d|9[0-8])\d{3}$/i', $postcode);
}Versión en HTML
En HTML se pueden crear campos que comprueben si el valor es válido con el atributo pattern de <input>: ahí puedes indicar la expresión regular de un código postal. Ojo, esto solo sirve para mostrarle la información visualmente al usuario, por ejemplo con bordes rojos.
<input
name="postcode"
type="text"
pattern="(?:0[1-9]|[1-8]\d|9[0-8])\d{3}"
placeholder="DDDDD"
/>
See the Pen
Valider un code postal avec une expression régulière en HTML by Damien Flandrin (@dam62500)
on CodePen.0


