Skip to content

Instantly share code, notes, and snippets.

@maxwaiyaki
Last active March 27, 2020 17:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save maxwaiyaki/82cf7b91d5982113eb5b5de4e0a8ba64 to your computer and use it in GitHub Desktop.
Save maxwaiyaki/82cf7b91d5982113eb5b5de4e0a8ba64 to your computer and use it in GitHub Desktop.
Usefull Fuctions to create Slugs, Titles and Trim Strings
// Slugify a String
function slugify(string) {
const a = 'àáäâãåăæąçćčđďèéěėëêęğǵḧìíïîįłḿǹńňñòóöôœøṕŕřßşśšșťțùúüûǘůűūųẃẍÿýźžż·/_,:;'
const b = 'aaaaaaaaacccddeeeeeeegghiiiiilmnnnnooooooprrsssssttuuuuuuuuuwxyyzzz------'
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
}
// Create Title
function titleIfy(slug) {
var words = slug.split('-');
for (var i = 0; i < words.length; i++) {
var word = words[i];
words[i] = word.charAt(0).toUpperCase() + word.slice(1);
}
return words.join(' ');
}
//Trim a String
function getTrimmedString(string, length = 8) {
if (string.length <= length) {
return string
} else {
return string.substring(0, length) + '...'
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment