Last active
March 27, 2020 17:13
-
-
Save maxwaiyaki/82cf7b91d5982113eb5b5de4e0a8ba64 to your computer and use it in GitHub Desktop.
Usefull Fuctions to create Slugs, Titles and Trim Strings
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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