21 lines
385 B
JavaScript
21 lines
385 B
JavaScript
const UMLAUT_MAP = {
|
|
ä: 'ae',
|
|
ö: 'oe',
|
|
ü: 'ue',
|
|
ß: 'ss',
|
|
};
|
|
|
|
export default function slugify(name) {
|
|
return String(name)
|
|
.trim()
|
|
.toLowerCase()
|
|
.replace(/ä/g, 'ae')
|
|
.replace(/ö/g, 'oe')
|
|
.replace(/ü/g, 'ue')
|
|
.replace(/ß/g, 'ss')
|
|
.normalize('NFD')
|
|
.replace(/\p{M}/gu, '')
|
|
.replace(/[^a-z0-9]+/g, '-')
|
|
.replace(/^-+|-+$/g, '');
|
|
}
|