Regex cho URL slug

Dùng /^[a-z0-9]+(?:-[a-z0-9]+)*$/ để kiểm tra xem toàn bộ chuỗi có phải là URL slug 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ở trong Regex Tester với các mẫu đã được nạp sẵn.

Cập nhật

/^[a-z0-9]+(?:-[a-z0-9]+)*$/
Mở trong Regex Tester
Đầu vàoKết quả
regex-tester✓ Khớp
hello-world-2026✓ Khớp
a✓ Khớp
Hello-World✗ Không khớp
double--dash✗ Không khớp
-leading✗ Không khớp
trailing-✗ Không khớp
with space✗ Không khớp

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

PhầnÝ nghĩa
[a-z0-9]+Một hoặc nhiều chữ cái thường hoặc chữ số
(?:-[a-z0-9]+)*Bất kỳ số lượng từ nào nối tiếp, mỗi từ cách nhau bằng một dấu gạch ngang
^…$Toàn bộ chuỗi — nghĩa là không có dấu gạch ngang ở đầu, cuối hoặc hai dấu gạch ngang liên tiếp

Ví dụ mã

JavaScript

const re = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'[a-z0-9]+(?:-[a-z0-9]+)*', value))

PHP

preg_match('/^[a-z0-9]+(?:-[a-z0-9]+)*$/', $value) === 1;

Ghi chú và giới hạn

Chuyển tiêu đề thành slug bằng Slug Generator.

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

Regex cho URL slug là gì?
/^[a-z0-9]+(?:-[a-z0-9]+)*$/ — mẫu này khớp với toàn bộ chuỗi. Xem bảng ở 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 ví dụ khớp là: regex-tester, hello-world-2026, a. Các ví dụ còn lại không khớp.
Làm sao để kiểm thử regex này?
Nhấp “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 tô sáng khi bạn chỉnh sửa.