Trong các ứng dụng Web (đặc biệt là các framework như Laravel, NestJS hay Express), việc chuyển đổi tiêu đề bài viết tiếng Việt thành đường dẫn tĩnh (URL Slug) thân thiện với công cụ tìm kiếm là yêu cầu thường gặp.
Cho một chuỗi tiêu đề tiếng Việt title. Hãy tạo ra URL slug chuẩn SEO theo các nguyên tắc:
- Khử dấu toàn bộ các nguyên âm tiếng Việt (à, á, ả, ã, ạ, ă, ắ, ằ, ẳ, ẵ, ặ, â, ấ, ầ, ẩ, ẫ, ậ -> a; đ -> d; ...).
- Chuyển toàn bộ các chữ cái thành chữ thường (lowercase).
- Thay thế khoảng trắng và tất cả các ký tự đặc biệt (dấu câu, ký hiệu) bằng dấu gạch ngang
-. - Các dấu gạch ngang liên tiếp phải được gộp lại thành đúng một dấu gạch ngang duy nhất (ví dụ:
---thành-). - Cắt bỏ dấu gạch ngang ở đầu và ở cuối chuỗi nếu có.
Ví dụ 1:
Input: "Khóa học Lập trình Laravel 7 & Vue.js!"
Output: "khoa-hoc-lap-trinh-laravel-7-vuejs"
Ví dụ 2:
Input: " Học Lập Trình Web Tại Unicode "
Output: "hoc-lap-trinh-web-tai-unicode"
Định Dạng Đầu Vào (Input)
Định Dạng Đầu Ra (Output)
Ràng Buộc (Constraints)
1 <= title.length <= 1000Chuỗi có thể chứa chữ tiếng Việt có dấu, chữ cái tiếng Anh, chữ số và ký tự đặc biệt.
Ví Dụ Kiểm Thử Mẫu
"Khóa học Lập trình Laravel 7 & Vue.js!"
"khoa-hoc-lap-trinh-laravel-7-vuejs"
" Học Lập Trình Web Tại Unicode "
"hoc-lap-trinh-web-tai-unicode"
Kỹ thuật Bảng Ánh Xạ Ký Tự Tiếng Việt & Regex
1. Ánh xạ các nhóm ký tự tiếng Việt sang ký tự không dấu (a, e, i, o, u, y, d).
2. Dùng biểu thức chính quy [^a-z0-9]+ thay thế mọi ký tự không phải chữ số bằng dấu -.
3. Dùng trim('-') cắt gọt dấu gạch ngang ở 2 đầu.
Bấm Chạy thử để kiểm tra các bộ test mẫu hoặc Nộp bài để chấm điểm chính thức.



