SlugGenerator.app

Text slugifizieren in JavaScript, Python und PHP

7 Min. Lesezeit

Text zu slugifizieren—eine menschenlesbare Zeichenkette in einen URL-sicheren Slug umzuwandeln—ist eine häufige Aufgabe in der Webentwicklung. Ob Sie einen Blog, einen Onlineshop oder eine API bauen: Sie müssen saubere URL-Slugs aus Titeln und anderem Text erzeugen. Dieser Leitfaden zeigt, wie das in den drei beliebtesten serverseitigen Sprachen geht.

Sie möchten keinen Code schreiben? Nutzen Sie unser Tool Slugify Online, um Text sofort im Browser in Slugs umzuwandeln.

JavaScript / Node.js

Die slugify-Bibliothek verwenden

Der gängigste Ansatz in JavaScript ist das npm-Paket slugify:

npm install slugify
const slugify = require('slugify');

const title = "Café Menu — Special Édition!";
const slug = slugify(title, {
  lower: true,
  strict: true,
  trim: true
});

console.log(slug);
// Output: cafe-menu-special-edition

Die Optionen erklärt:

  • lower: true — wandelt in Kleinbuchstaben um
  • strict: true — entfernt alle Zeichen, die keine Buchstaben, Zahlen oder das Trennzeichen sind
  • trim: true — entfernt führende/abschließende Trennzeichen

Manuelle Implementierung

Wenn Sie keine Abhängigkeit hinzufügen möchten, hier eine minimale slugify-Funktion:

function slugify(text) {
  return text
    .normalize('NFKD')
    .replace(/[\u0300-\u036f]/g, '')
    .toLowerCase()
    .trim()
    .replace(/[^a-z0-9\s-]/g, '')
    .replace(/[\s_]+/g, '-')
    .replace(/-+/g, '-')
    .replace(/^-|-$/g, '');
}

Sie verarbeitet Akzentbuchstaben per Unicode-Normalisierung, wandelt in Kleinbuchstaben um, entfernt Sonderzeichen und fasst Leerraum zu einzelnen Bindestrichen zusammen.

Python

python-slugify verwenden

Die Standardbibliothek für die Slug-Erzeugung in Python ist python-slugify:

pip install python-slugify
from slugify import slugify

title = "Café Menu — Special Édition!"
slug = slugify(title)

print(slug)
# Output: cafe-menu-special-edition

python-slugify nutzt im Hintergrund die Bibliothek text-unidecode für die Transliteration, die eine breite Palette an Unicode-Zeichen einschließlich CJK abdeckt.

Djangos eingebautes slugify

Wenn Sie Django nutzen, gibt es ein eingebautes slugify-Hilfsmittel:

from django.utils.text import slugify

slug = slugify("My Blog Post Title")
# Output: my-blog-post-title

Hinweis: Djangos slugify führt standardmäßig keine Transliteration durch. Kombinieren Sie es für Akzentbuchstaben mit unidecode.

PHP

Laravels Str::slug()

Laravel bietet einen sauberen Slug-Helfer:

use Illuminate\Support\Str;

$slug = Str::slug("Café Menu — Special Édition!");
// Output: cafe-menu-special-edition

Str::slug() erledigt Transliteration, Kleinschreibung und das Entfernen von Sonderzeichen in einem Aufruf.

Manuelle Implementierung

Ohne Framework hier eine PHP-slugify-Funktion:

function slugify(string $text): string {
    $text = transliterator_transliterate(
        'Any-Latin; Latin-ASCII; Lower()',
        $text
    );
    $text = preg_replace('/[^a-z0-9\s-]/', '', $text);
    $text = preg_replace('/[\s_]+/', '-', $text);
    $text = preg_replace('/-+/', '-', $text);
    return trim($text, '-');
}

Sie nutzt die intl-Erweiterung von PHP für die Transliteration. Stellen Sie sicher, dass die intl-Erweiterung in Ihrer php.ini aktiviert ist.

Vergleichstabelle

FunktionJS (slugify)Python (python-slugify)PHP (Laravel)
TransliterationBasis-LateinVolles UnicodeVolles Unicode
Eigenes TrennzeichenJaJaJa
Maximale LängeNeinJaNein (manuell)
CJK-UnterstützungNeinJaTeilweise

Wann Bibliothek, wann Online-Tool?

Verwenden Sie eine Bibliothek, wenn Sie Slugs zur Laufzeit programmatisch erzeugen müssen—etwa um beim Erstellen eines Blogbeitrags automatisch eine URL zu generieren.

Verwenden Sie ein Online-Tool, wenn Sie einen einmaligen Slug brauchen oder schnell prüfen möchten, wie ein Titel als URL aussieht. Unser Text-zu-Slug-Konverter unterstützt eigene Trennzeichen, maximale Länge und Transliteration—alle Optionen, die Sie in einer Bibliothek konfigurieren würden, ganz ohne Code.