Text Slugify (URL)

Wandelt Text in URL-freundliche Slugs um – unterstützt Kleinbuchstaben, Trennzeichen und benutzerdefinierte Stoppwörter.

Parameter und Eingabe

Empfohlen: - oder _ (1–3 Zeichen lang)

Ergebnis

Warum Slugify verwenden?

🔍 SEO-Optimierung

Keywords in URLs helfen Suchmaschinen, den Seitentext zu verstehen und das Ranking zu verbessern. Beispiel: example.com/blog/how-to-learn-javascript ist benutzerfreundlicher als example.com/blog/123.

👁️ Lesbarkeit und Teilen

Benutzer erkennen den Inhalt direkt an der URL – ideal für soziale Medien, leichter zu merken und manuell einzugeben.

💻 Systemkompatibilität

Vermeidet Fehler durch Sonderzeichen in Dateinamen oder URLs, ist plattformübergreifend kompatibel (Windows/Linux/macOS) und verhindert Kodierungsprobleme.

🗄️ Datenbank-freundlich

Als eindeutiger Bezeichner (z. B. Benutzername, Tag) vermeidet es SQL-Injection-Risiken und erleichtert Indizierung und Abfragen.

Was ist Slugify?

Ein Slug ist eine standardisierte Kurzform eines Textes, die als URL, Dateiname oder Bezeichner verwendet wird. Typische Verarbeitungsschritte umfassen einheitliche Groß-/Kleinschreibung, Entfernen von Satzzeichen und Verbinden von Wörtern mit Trennzeichen.

  • ASCII-prioritär: Akzente und Sonderzeichen尽可能 entfernen; nur Buchstaben, Zahlen und Leerzeichen behalten
  • Unicode-kompatibel: Verarbeitung durch NFKD-Normalisierung für die meisten Sprachzeichen
  • URL-freundlich: Ergebnis enthält nur Buchstaben, Zahlen und Trennzeichen – direkt für Pfade verwendbar

Anwendungsfälle

Blog-Artikel-URL

Wie lernt man JavaScript?

how-to-learn-javascript

Dateibenennung

Produktanforderungsdokument v2.0.docx

product-requirements-v2-0.docx

Datenbank-Bezeichner

Benutzer-Zhang San

user-zhang-san

Häufig gestellte Fragen

Q: Wie werden chinesische Zeichen behandelt?

A: Standardmäßig werden Diakritika entfernt und nur die pinyin-Buchstaben beibehalten. Reine Chinesisch-Zeichen können leer werden; empfohlen wird, sie zuerst manuell in Pinyin umzuwandeln, bevor sie slugifiziert werden, oder ein Pinyin-Konvertierungswerkzeug zu verwenden.

Q: Warum ist mein Ergebnis leer?

A: Möglicherweise enthält die Eingabe nur Satzzeichen/Symbole/Leerzeichen, oder nach Aktivierung der Stoppwortfilterung bleiben keine Wörter übrig. Versuchen Sie, die Stoppwort-Option zu deaktivieren oder den Eingabetext anzupassen.

Q: Sollte ich - oder _ als Trennzeichen verwenden?

A: Für SEO wird - (Bindestrich) empfohlen, da Google ihn als Leerzeichen interpretiert; _ (Unterstrich) wird als Verbindungszeichen behandelt und erschwert die Worttrennung. Bei Dateinamen ist die Wahl frei.

Q: Gibt es eine Längenbeschränkung für Slugs?

A: Technisch gibt es keine Grenze, aber es wird empfohlen, die Länge auf unter 50 Zeichen zu halten, um die URL-Anzeige und SEO zu optimieren. Zu lange Slugs können von Suchmaschinen abgeschnitten werden.

Best Practices

Empfohlene Vorgehensweisen

  • Kurz halten (empfohlen: < 50 Zeichen)
  • Vermeiden Sie Sonderzeichen; verwenden Sie nur Buchstaben, Zahlen und Trennzeichen
  • In Kleinbuchstaben umwandeln, um Groß-/Kleinschreibungsprobleme zu vermeiden
  • Stoppwörter entfernen, um die semantische Dichte zu erhöhen

Zu vermeidende Praktiken

  • Keine sensiblen Informationen enthalten (z. B. IDs, E-Mails, Passwörter)
  • Keine Sonderzeichen verwenden (z. B. @#$%^&*)
  • Keine Leerzeichen oder mehrfache Trennzeichen beibehalten
  • Nicht dieselben Wörter wiederholen

Technische Hinweise

Unicode-Normalisierung:

Verwendung von NFKD-Dekomposition + Entfernen von Kombinationszeichen (\p{M}), z. B. wird „Café“ zu „Cafe“. Unterstützt die meisten lateinischen Zeichensätze.

Stoppwortliste:

Basierend auf gängigen englischen Wörtern (a/an/the/and/or/of/to/in/on/for/at/by/with); kann erweitert werden. Chinesische Stoppwörter erfordern zusätzliche Verarbeitung.

Browser-Kompatibilität:

Erfordert Unterstützung für ES6+ und Unicode-Regular Expressions (\p{...}). Moderne Browser (Chrome 64+, Firefox 78+, Safari 11.1+) unterstützen dies.

Wie generiert man einen Slug mit einer Programmiersprache?

JavaScript

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

PHP

function slugify($text) {
  $text = mb_strtolower($text);
  $text = iconv("UTF-8", "ASCII//TRANSLIT", $text);
  $text = preg_replace("/[^\w\s-]/", "", $text);
  $text = preg_replace("/[\s_-]+/", "-", $text);
  return trim($text, "-");
}

Python

import re
import unicodedata

def slugify(text):
    text = text.lower()
    text = unicodedata.normalize("NFKD", text)
    text = text.encode("ascii", "ignore").decode("ascii")
    text = re.sub(r"[^\w\s-]", "", text)
    text = re.sub(r"[\s_-]+", "-", text)
    return text.strip("-")

Go

import (
    "regexp"
    "strings"
    "golang.org/x/text/unicode/norm"
)

func Slugify(text string) string {
    text = strings.ToLower(text)
    text = norm.NFKD.String(text)
    re := regexp.MustCompile(`[^\w\s-]`)
    text = re.ReplaceAllString(text, "")
    re = regexp.MustCompile(`[\s_-]+`)
    text = re.ReplaceAllString(text, "-")
    return strings.Trim(text, "-")
}

Ruby

require "unicode"

def slugify(text)
  text = text.downcase
  text = Unicode.nfkd(text).gsub(/[^\x00-\x7F]/, "")
  text = text.gsub(/[^\w\s-]/, "")
  text = text.gsub(/[\s_-]+/, "-")
  text.strip.gsub(/^-+|-+$/, "")
end

Java

import java.text.Normalizer;

public static String slugify(String text) {
    text = text.toLowerCase();
    text = Normalizer.normalize(text, Normalizer.Form.NFKD);
    text = text.replaceAll("[^\\w\\s-]", "");
    text = text.replaceAll("[\\s_-]+", "-");
    return text.replaceAll("^-+|-+$", "");
}