Files
Webklar-Kundenbereich/server/services/slug.js
T
2026-09-30 10:21:34 +00:00

23 lines
766 B
JavaScript

/**
* URL-/Dateiname-taugliches Kuerzel aus beliebigem Text: klein geschrieben, deutsche
* Umlaute ausgeschrieben (ä→ae, ö→oe, ü→ue, ß→ss), Akzente entfernt, Apostrophe entfernt,
* alles ausser a-z/0-9/- wird zu einem einzelnen '-', Rand-Bindestriche entfernt, auf
* 100 Zeichen gekuerzt. Kein Text (z. B. null/undefined) ergibt ''.
*/
export function slugify(value) {
const input = value === null || value === undefined ? '' : String(value)
return input
.toLowerCase()
.replace(/ä/g, 'ae')
.replace(/ö/g, 'oe')
.replace(/ü/g, 'ue')
.replace(/ß/g, 'ss')
.normalize('NFD')
.replace(/\p{M}/gu, '')
.replace(/['’‘`]/g, '')
.replace(/[^a-z0-9-]+/g, '-')
.replace(/^-+|-+$/g, '')
.slice(0, 100)
}