Regex para código postal del Reino Unido

Usa /^[A-Z]{1,2}\d[A-Z\d]? ?\d[A-Z]{2}$/i para comprobar que una cadena completa es un código postal válido del Reino Unido. Cada ejemplo de abajo se ha probado con el patrón, y puedes abrirlo en el Probador de Regex con las muestras ya cargadas.

Actualizado el

/^[A-Z]{1,2}\d[A-Z\d]? ?\d[A-Z]{2}$/i
Abrir en el probador de Regex
EntradaResultado
SW1A 1AA✓ Coincide
M1 1AE✓ Coincide
B33 8TH✓ Coincide
cr2 6xh✓ Coincide
12345✗ Sin coincidencia
SW1A1A✗ Sin coincidencia
SW1A 1A1✗ Sin coincidencia

Cómo funciona el patrón

ParteSignificado
[A-Z]{1,2}Área del código postal: una o dos letras
\d[A-Z\d]?Distrito: un dígito, opcionalmente seguido de una letra o un dígito
?Espacio opcional
\d[A-Z]{2}Código interior: un dígito y dos letras
i flagSin distinguir mayúsculas y minúsculas

Ejemplos de código

JavaScript

const re = /^[A-Z]{1,2}\d[A-Z\d]? ?\d[A-Z]{2}$/i;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'[A-Z]{1,2}\d[A-Z\d]? ?\d[A-Z]{2}', value, re.I))

PHP

preg_match('/^[A-Z]{1,2}\d[A-Z\d]? ?\d[A-Z]{2}$/i', $value) === 1;

Notas y limitaciones

Esto comprueba la forma de un código postal, no si realmente existe. Al guardarlo, normalízalo a mayúsculas con un solo espacio antes de los tres últimos caracteres.

Preguntas frecuentes

¿Cuál es la regex para el código postal del Reino Unido?
/^[A-Z]{1,2}\d[A-Z\d]? ?\d[A-Z]{2}$/i — coincide con la cadena completa. Consulta la tabla de arriba para ver qué hace cada parte.
¿Qué ejemplos coinciden?
De los ejemplos probados, coinciden estos: SW1A 1AA, M1 1AE, B33 8TH, cr2 6xh. Los demás no.
¿Cómo pruebo esta regex?
Haz clic en «Abrir en el probador de Regex»: el patrón, los flags y el texto de muestra se cargan automáticamente, y las coincidencias se resaltan mientras editas.