Regex cho địa chỉ MAC

Dùng /^(?:[0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$/ để kiểm tra toàn bộ chuỗi có phải là địa chỉ MAC 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 các mẫu dữ liệu.

Cập nhật

/^(?:[0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$/
Mở trong Regex Tester
Đầu vàoKết quả
00:1A:2B:3C:4D:5E✓ Khớp
00-1a-2b-3c-4d-5e✓ Khớp
001A2B3C4D5E✗ Không khớp
00:1A:2B:3C:4D✗ Không khớp
00:1G:2B:3C:4D:5E✗ Không khớp

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

PhầnÝ nghĩa
[0-9A-Fa-f]{2}Hai chữ số thập lục phân
[:-]Dấu hai chấm hoặc dấu gạch ngang phân cách
(?:…){5}Năm cặp kèm dấu phân cách
[0-9A-Fa-f]{2}$Cặp thứ sáu

Ví dụ code

JavaScript

const re = /^(?:[0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'(?:[0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}', value))

PHP

preg_match('/^(?:[0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$/', $value) === 1;

Ghi chú và giới hạn

Mẫu này cho phép trộn lẫn dấu phân cách (00:1A-2B…). Hãy bắt nhóm dấu phân cách đầu tiên và tái sử dụng bằng backreference — ^[0-9A-Fa-f]{2}([:-])(?:[0-9A-Fa-f]{2}\1){4}[0-9A-Fa-f]{2}$ — để yêu cầu các dấu phân cách phải nhất quán.

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

Regex cho địa chỉ MAC là gì?
/^(?:[0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$/ — mẫu này khớp với toàn bộ chuỗi. Xem bảng phía trên để biết từng phần làm gì.
Những ví dụ nào khớp?
Trong các ví dụ đã kiểm thử, những ví dụ khớp là: 00:1A:2B:3C:4D:5E, 00-1a-2b-3c-4d-5e. Các ví dụ còn lại không khớp.
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 đánh dấu khi bạn chỉnh sửa.