Regex mã bưu chính Canada

Dùng /^[ABCEGHJ-NPRSTVXY]\d[ABCEGHJ-NPRSTV-Z] ?\d[ABCEGHJ-NPRSTV-Z]\d$/ để kiểm tra toàn bộ chuỗi có phải là mã bưu chính Canada 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 sẵn dữ liệu mẫu.

Cập nhật

/^[ABCEGHJ-NPRSTVXY]\d[ABCEGHJ-NPRSTV-Z] ?\d[ABCEGHJ-NPRSTV-Z]\d$/
Mở trong Regex Tester
Đầu vàoKết quả
K1A 0B1✓ Khớp
M5V3L9✓ Khớp
H2X 1Y4✓ Khớp
D1A 0B1✗ Không khớp
K1A-0B1✗ Không khớp
12345✗ Không khớp
k1a 0b1✗ Không khớp

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

PhầnÝ nghĩa
[ABCEGHJ-NPRSTVXY]Ký tự đầu tiên: D, F, I, O, Q, U, W và Z không bao giờ được sử dụng
\dMột chữ số
[ABCEGHJ-NPRSTV-Z]Một chữ cái (D, F, I, O, Q, U bị loại trừ)
?Khoảng trắng tùy chọn
\d[ABCEGHJ-NPRSTV-Z]\dChữ số, chữ cái, chữ số

Ví dụ code

JavaScript

const re = /^[ABCEGHJ-NPRSTVXY]\d[ABCEGHJ-NPRSTV-Z] ?\d[ABCEGHJ-NPRSTV-Z]\d$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'[ABCEGHJ-NPRSTVXY]\d[ABCEGHJ-NPRSTV-Z] ?\d[ABCEGHJ-NPRSTV-Z]\d', value))

PHP

preg_match('/^[ABCEGHJ-NPRSTVXY]\d[ABCEGHJ-NPRSTV-Z] ?\d[ABCEGHJ-NPRSTV-Z]\d$/', $value) === 1;

Ghi chú và giới hạn

Nếu muốn chấp nhận đầu vào chữ thường, hãy chuyển chuỗi sang chữ hoa trước — mẫu này cố tình phân biệt hoa thường để loại trừ các chữ cái không được sử dụng.

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

Regex cho mã bưu chính Canada là gì?
/^[ABCEGHJ-NPRSTVXY]\d[ABCEGHJ-NPRSTV-Z] ?\d[ABCEGHJ-NPRSTV-Z]\d$/ — mẫu này 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ã khớp là: K1A 0B1, M5V3L9, H2X 1Y4. Các ví dụ còn lại thì không.
Làm thế nào để kiểm thử regex này?
Nhấp vào “Mở trong Regex Tester” — mẫu, cờ và văn bản mẫu sẽ tự động được tải, và các đoạn khớp sẽ được làm nổi bật khi bạn chỉnh sửa.