Regex kiểm tra mã bưu chính UK

Dùng /^[A-Z]{1,2}\d[A-Z\d]? ?\d[A-Z]{2}$/i để kiểm tra toàn bộ chuỗi có phải là mã bưu chính UK hợp lệ hay không. Mọi ví dụ bên dưới đều đã được kiểm thử với mẫu này, và bạn có thể mở chúng trong Regex Tester với các mẫu thử được nạp sẵn.

Cập nhật

/^[A-Z]{1,2}\d[A-Z\d]? ?\d[A-Z]{2}$/i
Mở trong Regex Tester
Đầu vàoKết quả
SW1A 1AA✓ Khớp
M1 1AE✓ Khớp
B33 8TH✓ Khớp
cr2 6xh✓ Khớp
12345✗ Không khớp
SW1A1A✗ Không khớp
SW1A 1A1✗ Không khớp

Cách hoạt động của mẫu

PhầnÝ nghĩa
[A-Z]{1,2}Vùng bưu chính: một hoặc hai chữ cái
\d[A-Z\d]?Quận: một chữ số, tùy chọn theo sau là một chữ cái hoặc chữ số
?Khoảng trắng tùy chọn
\d[A-Z]{2}Mã nội bộ: một chữ số và hai chữ cái
i flagKhông phân biệt chữ hoa và chữ thường

Ví dụ code

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;

Ghi chú và giới hạn

Regex này chỉ kiểm tra định dạng của mã bưu chính, không kiểm tra mã đó có tồn tại hay không. Khi lưu, hãy chuẩn hóa mã về chữ hoa và thêm một khoảng trắng trước ba ký tự cuối.

Câu hỏi thường gặp

Regex cho mã bưu chính UK là gì?
/^[A-Z]{1,2}\d[A-Z\d]? ?\d[A-Z]{2}$/i — khớp với toàn bộ chuỗi. Xem bảng phía trên để biết mỗi phần làm gì.
Những ví dụ nào khớp?
Trong các ví dụ đã kiểm thử, những mã sau khớp: SW1A 1AA, M1 1AE, B33 8TH, cr2 6xh. Các mã còn lại thì không.
Làm sao để kiểm thử regex này?
Nhấn “Mở trong Regex Tester” — mẫu, cờ và văn bản mẫu sẽ tự động được nạp, và các kết quả khớp sẽ được tô sáng khi bạn chỉnh sửa.