Text Slugify (URL)

Un tool professionale per la creazione di slug che normalizza il testo in formati adatti agli URL, supportando la conversione in minuscolo, separatori personalizzati e la rimozione delle stop word inglesi. Utilizza la normalizzazione Unicode per gestire caratteri della maggior parte delle lingue, garantendo che gli slug generati seguano le best practice SEO. Ideale per URL di articoli del blog, nomi di file, identificatori di database e altri scenari. Elaborazione completamente locale per proteggere la tua privacy; nessuna registrazione richiesta. Fornisce linee guida dettagliate sull'uso e raccomandazioni sulle best practice per aiutarti a generare slug di alta qualità.

Parametri & Input

Consigliato: usa - o _, lunghezza 1~3 caratteri

Risultato

Perché usare Slugify?

🔍 Ottimizzazione SEO

Le parole chiave negli URL aiutano i motori di ricerca a comprendere il contenuto della pagina e a migliorare le classifiche. Ad esempio, example.com/blog/how-to-learn-javascript è più efficace di example.com/blog/123.

👁️ Leggibilità e condivisione

Gli utenti possono capire istantaneamente il contenuto dall'URL. Gli slug sono più facili da condividere sui social media e più semplici da ricordare o digitare manualmente.

💻 Compatibilità di sistema

Evita errori causati da caratteri speciali nei nomi dei file o negli URL. Garantisce la compatibilità multipiattaforma (Windows/Linux/macOS) e previene problemi di codifica.

🗄️ Adatto al database

Usa gli slug come identificatori univoci (ad es. nomi utente, tag) per ridurre i rischi di SQL injection e migliorare l'indicizzazione e le prestazioni delle query.

Cos'è Slugify?

Uno slug è una versione abbreviata e standardizzata del testo, utilizzata come URL, nome file o identificatore. Le operazioni comuni includono la standardizzazione delle maiuscole/minuscole, la rimozione della punteggiatura e l'unione delle parole tramite separatori.

  • Priorità ASCII: rimuovi accenti e simboli, mantieni solo caratteri alfanumerici e spazi
  • Compatibilità Unicode: normalizza i caratteri della maggior parte delle lingue usando NFKD prima dell'elaborazione
  • Sicurezza URL: l'output contiene solo lettere, numeri e separatori, pronto per l'uso diretto nei percorsi

Casi d'uso

URL degli articoli del blog

Come imparare JavaScript?

come-imparare-javascript

Denominazione dei file

Documento requisiti prodotto v2.0.docx

documento-requisiti-prodotto-v2-0.docx

Identificatore database

用户-张三

user-zhang-san

Domande frequenti

D: Come vengono gestiti i caratteri cinesi?

R: Per impostazione predefinita, i diacritici vengono rimossi e le lettere in pinyin vengono mantenute. Il testo puramente cinese potrebbe diventare vuoto; si consiglia di convertirlo manualmente in pinyin prima della creazione dello slug, oppure di utilizzare uno strumento di conversione pinyin per il cinese.

D: Perché il risultato è vuoto?

R: L'input potrebbe consistere interamente in punteggiatura, simboli o spazi, oppure tutte le parole potrebbero essere state rimosse dal filtro delle stopword. Prova a disattivare l'opzione stopword o ad apportare modifiche all'input.

D: Dovrei usare - o _ come separatore?

R: Per la SEO, usa - (trattino), poiché Google lo interpreta come uno spazio; _ (underscore) viene trattato come simbolo di concatenazione, ostacolando la separazione delle parole. Per i nomi dei file, entrambi sono accettabili.

D: Esiste un limite di lunghezza per gli slug?

R: Non esiste un limite tecnico, ma si consiglia di mantenere gli slug sotto i 50 caratteri per una migliore visualizzazione dell'URL e per la SEO. Slug eccessivamente lunghi potrebbero essere troncati dai motori di ricerca.

Best practice

Pratiche consigliate

  • ✓ Mantienilo breve (consigliato < 50 caratteri)
  • ✓ Evita i caratteri speciali; usa solo lettere, numeri e separatori
  • ✓ Usa le minuscole per evitare problemi di distinzione tra maiuscole e minuscole
  • ✓ Rimuovi le stopword per migliorare la densità semantica

Evita queste pratiche

  • ✗ Non includere informazioni sensibili (es. ID, email, password)
  • ✗ Non usare caratteri speciali (es. @#$%^&*)
  • ✗ Non mantenere spazi o separatori consecutivi
  • ✗ Non ripetere la stessa parola

Dettagli tecnici

Normalizzazione Unicode:

Utilizza la decomposizione NFKD + rimozione dei diacritici combinanti (\p{M}), convertendo Café in Cafe. Supporta la maggior parte dei caratteri basati sull'alfabeto latino.

Elenco delle stopword:

Basato sulle comuni parole inglesi (a/an/the/and/or/of/to/in/on/for/at/by/with); personalizzabile. Le stopword cinesi richiedono una gestione separata.

Compatibilità del browser:

Richiede ES6+ e supporto per regex Unicode (\p{...}). Supportato nei browser moderni: Chrome 64+, Firefox 78+, Safari 11.1+.

Come generare uno slug tramite un linguaggio di programmazione?

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("^-+|-+$", "");
}