.ts
TypeScript
(application/typescript)
/**
 * Slugifies a string by replacing spaces with hyphens and removing non-word characters.
 *
 * @param str - The string to slugify.
 * @returns The slugified string.
 */
export default function slugify(str: string): string {
  return str
    .toString()
    .toLowerCase()
    .replace(/\s+/g, "-") // Replace spaces with -
    .replace(/[^\w\-]+/g, "") // Remove all non-word chars
    .replace(/\-\-+/g, "-") // Replace multiple - with single -
    .replace(/^-+/, "") // Trim - from start of text
    .replace(/-+$/, ""); // Trim - from end of text
}