Slugify text (URL)

Normalize text into URL-friendly slugs, supporting lowercase, custom separators, and custom stop words removal.

Parametri și intrare

Recomandat: folosiți - sau _, lungime 1-3 caractere

Rezultat

De ce este nevoie de Slugify?

🔍 Optimizare SEO

Cuvintele cheie din URL ajută motoarele de căutare să înțeleagă conținutul paginii și să îl clasifice mai bine. De exemplu, example.com/blog/how-to-learn-javascript este mai prietenos decât example.com/blog/123.

👁️ Lizibilitate și partajare

Utilizatorii pot înțelege conținutul doar din URL, ceea ce face partajarea pe rețelele sociale mai eficientă și facilitează memorarea sau introducerea manuală.

💻 Compatibilitate sistem

Evită erorile cauzate de caractere speciale în numele fișierelor sau URL-uri, asigură compatibilitate între platforme (Windows/Linux/Mac) și previne probleme de codare.

🗄️ Prietenos pentru baze de date

Folosit ca identificator unic (de exemplu, nume de utilizator sau etichete), reduce riscul de injecții SQL și facilitează indexarea și interogările.

Ce este Slugify?

Un slug este o frază standardizată folosită ca URL, nume de fișier sau identificator. Procesul comun include uniformizarea dimensiunii literelor, eliminarea punctuației și conectarea cuvintelor cu un separator.

  • Prioritate ASCII: încearcă să elimini diacriticele și simbolurile, păstrând doar litere, cifre și spații
  • Compatibilitate Unicode: normalizează caracterele din majoritatea limbilor folosind NFKD înainte de procesare
  • Prietenos pentru URL: rezultatul conține doar litere, cifre și separatori, fiind gata pentru utilizare în căi

Situatii de utilizare

URL-uri articole blog

Cum să înveți JavaScript?

how-to-learn-javascript

Nume fișier

Document cerințe produs v2.0.docx

product-requirements-v2-0.docx

Identificator bază de date

Utilizator-Zhang San

user-zhang-san

Întrebări frecvente

Q: Cum sunt tratate caracterele chinezești?

A: Implicit, diacriticele sunt eliminate, păstrându-se literele pinyin. Textul pur chinezesc poate deveni gol; se recomandă să convertiți manual în pinyin înainte de slugify, sau să folosiți un instrument de conversie pinyin chinezesc.

Q: De ce rezultatul meu este gol?

A: Este posibil ca inputul să conțină doar semne de punctuație/simboluri/spații, sau să nu rămână cuvinte după filtrarea cuvintelor inutile. Încercați să dezactivați opțiunea de cuvinte inutile sau să ajustați conținutul de intrare.

Q: Ce separator ar trebui să folosesc: - sau _?

A: Pentru SEO, se recomandă - (cratimă), deoarece Google o interpretează ca un spațiu; _ (underline) este tratat ca un caracter de conectare, ceea ce împiedică divizarea corectă a cuvintelor. Pentru numele fișierelor, puteți alege oricare.

Q: Există o limită de lungime pentru slug?

A: Tehnic nu există limită, dar se recomandă să mențineți lungimea sub 50 de caractere pentru o afișare ULR optimă și SEO. Slug-urile prea lungi pot fi tăiate de motoarele de căutare.

Cele mai bune practici

Practici recomandate

  • Păstrați-le scurte (recomandat < 50 de caractere)
  • Evitați caracterele speciale; folosiți doar litere, cifre și separatori
  • Convertește în litere mici pentru a evita problemele de sensibilitate la majuscule/minuscule
  • Eliminați cuvintele inutile pentru a crește densitatea semantică

Ce trebuie evitat

  • Nu includeți informații sensibile (cum ar fi ID-uri, email-uri, parole)
  • Nu folosiți caractere speciale (cum ar fi @#$%^&*)
  • Nu păstrați spațiile sau separatorii consecutivi
  • Nu repetați același cuvânt

Note tehnice

Normalizare Unicode:

Se folosește descompunerea NFKD + eliminarea diacriticelor (\p{M}), transformând Café în Cafe. Suportă majoritatea caracterelor latine.

Lista cuvintelor inutile:

Bazată pe cuvinte comune în engleză (a/an/the/and/or/of/to/in/on/for/at/by/with); poate fi extinsă personalizat. Cuvintele inutile în limba chineză necesită procesare suplimentară.

Compatibilitate browser:

Este necesară suportul pentru ES6+ și expresii regulate Unicode (\p{...}). Toate browserele moderne (Chrome 64+, Firefox 78+, Safari 11.1+) le suportă.

Cum se generează un slug prin intermediul unui limbaj de programare?

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