helpers/slugify.js (10 lines of code) (raw):

/** * Replaces whitespace and non-sluggish characters with a given separator * @param {String} str - The string to slugify * @param {String=} separator - The separator used to separate words (defaults to "-") * @returns {String} */ export const slugify = (str, separator = '-') => { const slug = str .trim() .toLowerCase() .replace(/[^a-zA-Z0-9_.-]+/g, separator) // Remove any duplicate separators or separator prefixes/suffixes .split(separator) .filter(Boolean) .join(separator); return slug === separator ? '' : slug; };