@squirrel-forge/ui-util
Version:
A collection of utilities, classes, functions and abstracts made for the browser and babel compatible.
23 lines (19 loc) • 746 B
JavaScript
/**
* Convert string to slug
* @param {string} str - String to sanitize
* @return {string} - Sanitized string
*/
export function strSlug( str ) {
str = str.replace( /^\s+|\s+$/g, '' ); // trim
str = str.toLowerCase();
// remove accents, swap ñ for n, etc
const from = 'àáäâèéëêìíïîòóöôùúüûñç·/_,:;';
const to = 'aaaaeeeeiiiioooouuuunc------';
for ( let i = 0, l = from.length; i < l; i++ ) {
str = str.replace( new RegExp( from.charAt( i ), 'g' ), to.charAt( i ) );
}
str = str.replace( /[^a-z0-9 -]/g, '' ) // remove invalid chars
.replace( /\s+/g, '-' ) // collapse whitespace and replace by -
.replace( /-+/g, '-' ); // collapse dashes
return str;
}