Cách hoạt động của mẫu
| Phần | Ý nghĩa |
|---|---|
4\d{12}(?:\d{3})? | Visa: bắt đầu bằng 4, gồm 13 hoặc 16 chữ số |
5[1-5]\d{14} | Mastercard: 51–55, gồm 16 chữ số |
3[47]\d{13} | American Express: bắt đầu bằng 34 hoặc 37, gồm 15 chữ số |
Ví dụ mã
JavaScript
const re = /^(?:4\d{12}(?:\d{3})?|5[1-5]\d{14}|3[47]\d{13})$/;
re.test(value); // true or falsePython
import re
bool(re.fullmatch(r'(?:4\d{12}(?:\d{3})?|5[1-5]\d{14}|3[47]\d{13})', value))PHP
preg_match('/^(?:4\d{12}(?:\d{3})?|5[1-5]\d{14}|3[47]\d{13})$/', $value) === 1;
Ghi chú và giới hạn
Xóa khoảng trắng và dấu gạch ngang trước khi kiểm tra, sau đó chạy kiểm tra tổng Luhn — regex chỉ kiểm tra định dạng. Mastercard cũng cấp số trong dải 2221–2720; thêm |2(?:2[2-9]|[3-6]\d|7[01]|720)\d{12} để bao gồm các số này. Không bao giờ ghi log hay lưu số thẻ thô. Các ví dụ là số thẻ thử nghiệm tiêu chuẩn.
Kiểm tra Regex
Nhập mẫu và xem các kết quả khớp được tô sáng ngay trong văn bản thử nghiệm.