Skip to content

Instantly share code, notes, and snippets.

@WeyIin
Forked from hagemann/slugify.js
Last active June 4, 2019 20:38
Show Gist options
  • Select an option

  • Save WeyIin/608a2273f46e04c255e7392cacc6c3d7 to your computer and use it in GitHub Desktop.

Select an option

Save WeyIin/608a2273f46e04c255e7392cacc6c3d7 to your computer and use it in GitHub Desktop.
Slugify makes a string URI-friendly
function slugify(string) {
const a = 'àáäâãåăæčçćđèéëêěǵḧìíïîľḿňńǹñòóöôœøṕřŕßšśșťțůùúüûǘẃẍÿýźž·/_,:;'
const b = 'aaaaaaaacccdeeeeeghiiiilmnnnnooooooprrssssttuuuuuuwxyyzz------'
const p = new RegExp(a.split('').join('|'), 'g')
return string.toString().toLowerCase()
.replace(/\s+/g, '-') // Replace spaces with -
.replace(p, c => b.charAt(a.indexOf(c))) // Replace special characters
.replace(/&/g, '-and-') // Replace & with 'and'
.replace(/[^\w\-]+/g, '') // Remove all non-word characters
.replace(/\-\-+/g, '-') // Replace multiple - with single -
.replace(/^-+/, '') // Trim - from start of text
.replace(/-+$/, '') // Trim - from end of text
}
@WeyIin
Copy link
Copy Markdown
Author

WeyIin commented Jun 4, 2019

Added Czech, Slovak, Slovenian and Croatian letters.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment