# How to slugify a string in JavaScript

> Learn how to slugify a string in JavaScript with a small function that lowercases text, strips accents and invalid characters, and turns spaces into hyphens.

Author: [Flavio Copes](https://flaviocopes.com/about/) | Published: 2023-03-15 | Topics: [JavaScript](https://flaviocopes.com/tags/js/) | Canonical: https://flaviocopes.com/how-to-slugify-a-string-in-javascript/

A snippet of code I used to slugify a string

```javascript
export function slugify(str) {
  // Remove leading and trailing whitespace
  str = str.trim()

  // Make the string lowercase
  str = str.toLowerCase()

  // Remove accents, swap ñ for n, etc
  str = str.normalize('NFD').replace(/[\u0300-\u036f]/g, '')

  // Remove invalid characters
  str = str.replace(/[^a-z0-9 -]/g, '')

  // Replace whitespace with a hyphen
  str = str.replace(/\s+/g, '-')

  // Collapse consecutive hyphens
  str = str.replace(/-+/g, '-')

  return str
}
```

If you just need to convert a string to kebab-case (or camelCase, snake_case...) without writing code, I built a free [string case converter](https://flaviocopes.com/tools/string-case/) you can use.
