kebabCase property

String get kebabCase

Chuyển đổi chuỗi sang định dạng kebab-case. Ví dụ: "helloWorld" -> "hello-world", "my_awesome_class" -> "my-awesome-class"

Implementation

String get kebabCase {
  if (isEmpty) return this;

  // Chuyển PascalCase/camelCase sang kebab-case (thêm - trước chữ hoa)
  String result = replaceAllMapped(
    RegExp(r'(?<=[a-z])([A-Z])'),
    (match) => '-${match.group(1)!.toLowerCase()}',
  );

  // Xử lý các trường hợp khác như dấu cách, gạch dưới thành gạch ngang
  result = result.replaceAll(RegExp(r'[_ ]'), '-');

  // Chuyển toàn bộ thành chữ thường và loại bỏ nhiều dấu gạch ngang liên tiếp
  return result.toLowerCase().replaceAll(RegExp(r'-+'), '-');
}