const ALNUMWHITESPACE_REGEX = /([^\s\w])/gu const MULTIWHITESPACE_REGEX = /\s+/g export function castStringToSingleString (s) { let processed = s.replace(ALNUMWHITESPACE_REGEX, ' ') processed = processed.replace(MULTIWHITESPACE_REGEX, '-') return processed } export function quoteUrl (url, safe) { if (typeof (safe) !== 'string') { safe = '/' } url = encodeURIComponent(url) const toUnencode = [] for (let i = safe.length - 1; i >= 0; --i) { const encoded = encodeURIComponent(safe[i]) if (encoded !== safe.charAt(i)) { toUnencode.push(encoded) } } url = url.replace(new RegExp(toUnencode.join('|'), 'ig'), decodeURIComponent) return url }