Regex cho chuỗi base64

Dùng /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/ để kiểm tra xem toàn bộ chuỗi có phải là chuỗi base64 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

/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/
Mở trong Regex Tester
Đầu vàoKết quả
SGVsbG8=✓ Khớp
SGVsbG8gd29ybGQ=✓ Khớp
QUJD✓ Khớp
SGVsbG8✗ Không khớp
SGV$bG8=✗ Không khớp
=abc✗ Không khớp
SGVsbG8==✗ Không khớp

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

PhầnÝ nghĩa
(?:[A-Za-z0-9+\/]{4})*Các khối đủ bốn ký tự
[A-Za-z0-9+\/]{2}==Hoặc một khối cuối có hai dấu đệm
[A-Za-z0-9+\/]{3}=Hoặc một khối cuối có một dấu đệm

Ví dụ mã

JavaScript

const re = /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?', value))

PHP

preg_match('/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/', $value) === 1;

Ghi chú và giới hạn

Chuỗi rỗng cũng khớp với mẫu, nên bạn hãy kiểm tra độ dài riêng. Với base64url (JWT, URL), hãy thay +\/ bằng _- và làm cho phần đệm trở thành tùy chọn. Để giải mã, bạn có thể dùng Base64 Encoder/Decoder.

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

Regex cho chuỗi base64 là gì?
/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/ — 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à: SGVsbG8=, SGVsbG8gd29ybGQ=, QUJD. 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 tải, và các kết quả khớp sẽ được tô sáng khi bạn chỉnh sửa.