Titel eller text

Slug

Vad är URL-sluggeneratorn?

Du har skrivit ett blogginlägg med titeln "Hur du parsar en URL i JavaScript — En kafégaregars guide (2026 års utgåva)" och nu behöver du en URL-väg för det. Du vill inte ha %E2%80%94 där, du vill inte ha mellanslag, du vill inte ha versaler som går sönder på case-känsliga servrar. Du vill ha hur-du-parsar-en-url-i-javascript-en-kafegares-guide-2026-ars-utgava. Det är vad det här gör. Klistra in titeln, kopiera sluggen. Termen själv kommer från förlagsvärlden — se Wikipedias artikel om sluggar för etymologin.

Algoritmen är den vanliga. Gör om till gemener, kör sedan String.prototype.normalize('NFD') för att dekomponera Unicode-tecken till basbokstav plus kombinerande märken. Ta bort märkena (så é blir e, å blir a, ö blir o). Hantera några vanliga ligaturer för hand — æ blir ae, ø blir o, ß blir ss, ł blir l. Ersätt varje följd av icke-alfanumeriska tecken med ett enda bindestreck. Klipp bort ledande och avslutande bindestreck. Begränsa till 80 tecken vid en ordgräns så du inte slutar med en slug avhuggen mitt i ett ord.

Varför kebab-case? För att bindestreck är konventionen. Googles riktlinjer för URL-struktur rekommenderar bindestreck framför understreck för ordsärskiljning i URL:er — sökmotorer parsar bindestreck som ordgränser. RFC 3986 definierar de oreserverade tecknen i en URL-väg (bokstäver, siffror, bindestreck, punkt, understreck, tilde) och de flesta sluggkonventioner håller sig till en delmängd av dessa. Snake_case (mitt_inlagg_titel) och Title-Case-Slug (Mitt-Inlagg-Titel) är alternativ man ser, men kebab-case med gemener är default överallt, från praktiken med rena URL:er till de flesta CMS-defaults.

Hur du använder sluggeneratorn

Tre steg. Varje matchar en knapp på den här sidan.

1

Klistra in en titel eller ladda exemplet

Släng in en titel, rubrik, produktnamn eller valfri text i vänsterpanelen. Klicka på Exempel för att ladda ett realistiskt exempel med långa tankstreck, accenter och parenteser — den sortens titel som knäcker naiv sluggkod. Exempelinmatning:

Hur du parsar en URL i JavaScript — En kafégaregars guide (2026 års utgåva)

Allt går — emoji, accenttecken, smarta citationstecken, långa tankstreck, dubbla bindestreck, flera mellanslag. Sluggen kommer ut ren.

2

Läs sluggen

Högerpanelen visar sluggen medan du skriver. Gemener, med bindestreck, endast ASCII, begränsad till 80 tecken vid en ordgräns. Om indata inte innehöll några slug-bara tecken (t.ex. bara emoji eller bara skiljetecken) ser du en vänlig notis istället för ett förvirrande tomt resultat.

3

Kopiera eller ladda ner

Klicka på Kopiera för att skicka sluggen till urklipp, eller på Ladda ner för att spara den som en .txt-fil. Använd Rensa i inmatningspanelen för att börja om med en ny titel.

När du faktiskt skulle använda detta

URL:er för blogginlägg

Ditt CMS genererar sluggar automatiskt men de är fula — tar bort accenter fel, lämnar understreck, hanterar inte smarta citationstecken. Du klistrar in titeln här, får en ren slug, klistrar tillbaka i URL-fältet. Funkar för WordPress, Ghost, handbyggda Next.js-bloggar, allt som låter dig skriva över sluggen.

Produkt- eller kategori-URL:er i e-handel

Marco Rivera lägger till en ny produkt som heter "Crème Brûlée Set — 4-pack (Begränsad Upplaga)". URL:en behöver vara /produkter/creme-brulee-set-4-pack-begransad-upplaga, inte /produkter/Crème+Brûlée+Set+%E2%80%94+4-pack+%28Begränsad+Upplaga%29. Slugga, plugga.

Filnamn från användarinmatade titlar

Du sparar uppladdade dokument till disk och kunden skrev "Q4-rapport — Slutlig (v3).docx" som titel. Det vill du inte ha som filnamn. Slugga titeln, lägg på .docx, skriv filen. Funkar likadant för S3-nycklar, GitHub-branchnamn från issue-titlar, och Slack-kanalnamn från projektnamn.

Migrera innehåll från ett annat CMS

Priya Patel flyttar 800 artiklar från ett gammalt CMS till ett nytt och källtitlarna har inkonsekvent kodning — vissa accentuerade, vissa inte, vissa med emoji från en omdesign 2018. Kör varje titel genom sluggern, deduplicera, och du har din nya URL-karta klar för redirect-tabellen.

Vanliga frågor

Varför tar ni bort accenter istället för att procent-koda dem?

För att sluggen är tänkt att vara läsbar för människor. café i sluggen blir %C3%A9 i den faktiska URL:en, vilket ser hemskt ut i en webbläsarrad, knäcker copy-paste i chatt, och förvirrar icke-tekniska läsare. Att reducera till ASCII håller URL:en läsbar och SEO-vänlig. NFD-normalisering är standardsättet att göra den dekompositionen.

Vad gäller för icke-latinska skriftsystem — kinesiska, arabiska, hindi?

NFD dekomponerar inte ideogram eller skriftsystem som inte har bas+kombinerande-märke-struktur. Så en titel på kinesiska producerar en tom slug här, och du ser meddelandet "inga slug-bara tecken". För icke-latinska skriftsystem har du två alternativ: translitterera först (med ett bibliotek som ICU eller unidecode), eller använd originalskriften i URL:en — moderna webbläsare och Google hanterar Unicode i URL:er problemfritt, bara mindre snyggt.

Varför begränsa till 80 tecken?

Ingen hård regel, men URL:er som överstiger ~80 tecken i vägsegmentet börjar bryta sig fult i e-postmeddelanden, sociala förhandsvisningar och tryckmedia. Googles vägledning sätter ingen siffra men rekommenderar "enkla, beskrivande" URL:er — långa är varken eller. Begränsningen hittar det sista bindestrecket före 80 tecken för att undvika ett snitt mitt i ett ord.

Hanterar den emoji?

Ja. Emoji tas bort tillsammans med andra icke-alfanumeriska tecken. Så "🎉 Ny Lansering! 🚀" blir ny-lansering. Om din slug slutar tom (bara emoji-input) får du den vänliga tom-slug-notisen istället för en trasig URL.

Vad är skillnaden mellan detta och URL-kodning av titeln?

URL-kodning behåller varje tecken men escape:ar de osäkra — så mellanslag blir %20, accenter blir procent-escaped UTF-8-byte. Resultatet är en giltig URL men oläslig. En slug är något annat: ett människovänligt vägsegment som slänger tecknen som inte hör hemma. Använd URL-kodning för query-parametrar, sluggar för vägsegment. WHATWG URL Standard har de exakta definitionerna för båda.

Ska jag använda kebab-case eller snake_case?

Kebab-case (mitt-inlagg-titel) för URL:er — det är konventionen och det är vad sökmotorer behandlar som ordsärskiljare. Snake_case (mitt_inlagg_titel) är okej för variabelnamn och databasidentifierare, men i URL:er behandlas understreck ofta som del av ordet, vilket skadar SEO. Det här verktyget använder kebab som default. Om du behöver snake, gör find-and-replace av bindestreck i utdatan.

Andra URL- och textverktyg

En slug är en del av en URL. Här är vad mer som passar med: