Regex cho JSON Web Token (JWT)

Dùng /^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]*$/ để kiểm tra xem toàn bộ chuỗi có phải là JSON Web Token (JWT) hợp lệ hay không. Mọi ví dụ bên dưới đều đã được 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_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]*$/
Mở trong Regex Tester
Đầu vàoKết quả
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMifQ.sig_abc-123✓ Khớp
eyJhbGciOiJub25lIn0.eyJzdWIiOiIxIn0.✓ Khớp
abc.def✗ Không khớp
a b.c.d✗ Không khớp
eyJ.abc.def.ghi✗ Không khớp

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

PhầnÝ nghĩa
[A-Za-z0-9_-]+Header, được mã hóa base64url
\.Dấu chấm
[A-Za-z0-9_-]+Payload
[A-Za-z0-9_-]*$Chữ ký (để trống với token không có chữ ký)

Ví dụ mã

JavaScript

const re = /^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]*$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]*', value))

PHP

preg_match('/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]*$/', $value) === 1;

Lưu ý và giới hạn

Kiểm tra định dạng không cho biết token có hợp lệ hay không, vì vậy hãy luôn xác minh chữ ký trên máy chủ. Bạn có thể xem nội dung token bằng JWT Decoder.

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

Regex cho JSON Web Token (JWT) là gì?
/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]*$/ — mẫu này khớp 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ụ đã thử, những ví dụ khớp là: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMifQ.sig_abc-123, eyJhbGciOiJub25lIn0.eyJzdWIiOiIxIn0.. Các ví dụ còn lại không khớp.
Làm thế nào để 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 đoạn khớp sẽ được tô sáng khi bạn chỉnh sửa.