Case Converter

Konvertera text mellan versaler, gemener, title case, camelCase, snake_case och mer

Prova ett exempel

Inmatning

Utmatning

Körs lokalt · Säkert att klistra in hemligheter
Konverterad text visas här…

Vad är skiftlägeskonvertering?

Skiftlägeskonvertering är processen att ändra bokstavskombinationen eller ordavskiljningsmönstret i en sträng. Ett konverteringsverktyg tar inmatning som "hello world" och omvandlar den till UPPERCASE, lowercase, Title Case, camelCase, snake_case, kebab-case eller andra konventioner. Omvandlingen är enkel för ren ASCII-text, men kantsituationer uppstår med akronymer ("XMLParser"), språkspecifika regler (turkiskt prickat I) och strängar med blandade skriftsystem.

Programmeringsspråk, filsystem och stilguider tillämpar sina egna namngivningskonventioner. JavaScript-variabler använder normalt camelCase. Python-funktioner och variabler följer snake_case enligt PEP 8. CSS-klassnamn använder kebab-case. Databaskolumner varierar per team, men snake_case dominerar i PostgreSQL och MySQL. Att byta mellan dessa konventioner manuellt är tidskrävande och felbenäget, särskilt vid namnbyte i dussintals filer.

Skiftlägeskonventioner spelar även roll utanför kod. Title Case följer regler definierade av stilguider som Chicago Manual of Style och APA, där artiklar och korta prepositioner förblir gemener om de inte inleder meningen. Sentence case skriver bara det första ordet och egennamn med stor bokstav. Amerikansk engelskpublicering väljer som standard Title Case för rubriker; de flesta europeiska och tekniska dokument använder Sentence case i stället.

Varför använda den här skiftlägeskonverteraren?

Klistra in vilken text som helst och konvertera den till nio skiftlägesformat direkt, utan att installera ett VS Code-tillägg eller skriva ett engångsskript.

Omedelbar konvertering
Välj ett skiftlägesformat och se resultatet direkt. Ingen tur-retur till en server, inget väntande. Byt mellan format för att jämföra resultat sida vid sida.
🔒
Integritetsskyddad bearbetning
Alla omvandlingar körs i din webbläsare med JavaScript. Din text stannar på din enhet. Ingenting skickas till en server eller lagras någonstans.
🔄
Nio format i ett verktyg
UPPERCASE, lowercase, Title Case, Sentence case, camelCase, PascalCase, snake_case, kebab-case och CONSTANT_CASE. En inmatning täcker alla vanliga konventioner.
🌍
Inget konto krävs
Öppna sidan och börja konvertera. Ingen registrering, inget webbläsartillägg, ingen skrivbordsinstallation. Fungerar på alla enheter med en modern webbläsare.

Användningsfall för skiftlägeskonverteraren

Frontendutveckling
Konvertera komponentpropnamn från snake_case i API-svar till camelCase för JavaScript-objekt. Byt namn på CSS-klasser från camelCase till kebab-case vid migrering till ett BEM- eller utility-first-namngivningssystem.
Backend-API-design
Översätt fältnamn mellan konventioner när du mappar databaskolumner (snake_case) till JSON-svarnycklar (camelCase). Verifiera att serialiseringslager producerar förväntat utdataformat.
DevOps och infrastruktur
Generera CONSTANT_CASE-miljövariabelnamn från beskrivande fraser. Konvertera Terraform-resursnamn mellan snake_case och kebab-case för att anpassa till teamets stilguider.
QA och testautomatisering
Förbered testfixturdata med korrekt formaterade fältnamn. Upptäck skiftlägesavvikelser mellan API-kontrakt och klientförväntningar innan de når produktion.
Datateknik
Normalisera kolumnrubriker vid import av CSV- eller Excel-filer till en databas. Konvertera blandade rubriker som "First Name" till snake_case-kolumner som "first_name" för ett konsekvent schemadesign.
Tekniskt skrivande och dokumentation
Formatera kodreferenser i dokumentation med korrekt skiftläge. Konvertera vanliga engelska beskrivningar till PascalCase-klassnamn eller kebab-case-URL-sluggar för konsekvens i tekniska specifikationer.

Referens för skiftlägeskonventioner

Varje namngivningskonvention har specifika regler för versalisering och ordavskiljning. Tabellen nedan visar alla nio format som verktyget stöder, med frasen "the quick brown fox" som referens.

SkiftlägeRegelExempel
UPPERCASEEvery letter capitalizedTHE QUICK BROWN FOX
lowercaseEvery letter lowercasedthe quick brown fox
Title CaseFirst letter of each word capitalizedThe Quick Brown Fox
Sentence caseFirst letter of each sentence capitalizedThe quick brown fox
camelCaseNo separators, first word lowercasetheQuickBrownFox
PascalCaseNo separators, every word capitalizedTheQuickBrownFox
snake_caseWords joined by underscores, all lowercasethe_quick_brown_fox
kebab-caseWords joined by hyphens, all lowercasethe-quick-brown-fox
CONSTANT_CASEWords joined by underscores, all uppercaseTHE_QUICK_BROWN_FOX

camelCase vs snake_case vs kebab-case

Dessa tre konventioner dominerar inom mjukvaruutveckling, men var och en hör hemma i ett annat ekosystem. Att välja fel bryter mot linters, kränker API-kontrakt eller skapar inkonsekventa kodbaser.

camelCase
Standard för JavaScript- och TypeScript-variabler, funktionsnamn och objektnycklar. Java och C# använder det för lokala variabler och metodparametrar. JSON-API:er byggda för JavaScript-klienter använder normalt camelCase-nycklar. Det första ordet är gement; varje efterföljande ord börjar med en versal.
snake_case
Standard för Python (PEP 8), Ruby, Rust och de flesta SQL-databaser. C-standardbibliotekets funktioner följer också detta mönster. Ord avskiljs med understreck, allt i gemener. CONSTANT_CASE (allt versalt med understreck) är varianten som används för konstanter och miljövariabler.
kebab-case
Standard för CSS-klassnamn, HTML-attribut, URL-sluggar och CLI-flaggnamn (--output-dir). Vanligt i Lisp och Clojure. Ord avskiljs med bindestreck, allt i gemener. De flesta programmeringsspråk kan inte använda bindestreck i identifierare, så kebab-case är begränsat till strängar, filnamn och märkspråk.

Kodexempel

Hur man konverterar mellan skiftlägeskonventioner programmatiskt. Varje exempel täcker de vanligaste omvandlingarna: camelCase till snake_case, snake_case till camelCase, och grundläggande versals-/gemener-/titelkonverteringar.

JavaScript
// camelCase → snake_case
function toSnakeCase(str) {
  return str
    .replace(/([a-z])([A-Z])/g, '$1_$2')
    .replace(/[\s-]+/g, '_')
    .toLowerCase()
}
toSnakeCase('myVariableName')  // → "my_variable_name"
toSnakeCase('kebab-case-str')  // → "kebab_case_str"

// snake_case → camelCase
function toCamelCase(str) {
  return str
    .toLowerCase()
    .replace(/[_-](\w)/g, (_, c) => c.toUpperCase())
}
toCamelCase('my_variable_name')  // → "myVariableName"

// Title Case
function toTitleCase(str) {
  return str.replace(/\w\S*/g, w =>
    w.charAt(0).toUpperCase() + w.slice(1).toLowerCase()
  )
}
toTitleCase('the quick brown fox')  // → "The Quick Brown Fox"
Python
import re

text = "the quick brown fox"

# UPPERCASE / lowercase
text.upper()  # → "THE QUICK BROWN FOX"
text.lower()  # → "the quick brown fox"

# Title Case
text.title()  # → "The Quick Brown Fox"

# camelCase
def to_camel(s):
    words = re.split(r'[\s_-]+', s)
    return words[0].lower() + ''.join(w.capitalize() for w in words[1:])

to_camel("my_variable_name")  # → "myVariableName"

# snake_case from camelCase
def to_snake(s):
    return re.sub(r'([a-z])([A-Z])', r'\1_\2', s).lower()

to_snake("myVariableName")  # → "my_variable_name"

# kebab-case
def to_kebab(s):
    return re.sub(r'([a-z])([A-Z])', r'\1-\2', s).replace('_', '-').lower()

to_kebab("myVariableName")  # → "my-variable-name"
Go
package main

import (
	"fmt"
	"regexp"
	"strings"
)

// camelCase → snake_case
func toSnake(s string) string {
	re := regexp.MustCompile("([a-z])([A-Z])")
	snake := re.ReplaceAllString(s, "${1}_${2}")
	return strings.ToLower(snake)
}

// snake_case → camelCase
func toCamel(s string) string {
	parts := strings.Split(strings.ToLower(s), "_")
	for i := 1; i < len(parts); i++ {
		parts[i] = strings.Title(parts[i])
	}
	return strings.Join(parts, "")
}

func main() {
	fmt.Println(toSnake("myVariableName"))  // → my_variable_name
	fmt.Println(toCamel("my_variable_name")) // → myVariableName
	fmt.Println(strings.ToUpper("hello"))    // → HELLO
	fmt.Println(strings.ToUpper("hello world")) // → HELLO WORLD
}
CLI (bash / sed)
# UPPERCASE
echo "hello world" | tr '[:lower:]' '[:upper:]'
# → HELLO WORLD

# lowercase
echo "HELLO WORLD" | tr '[:upper:]' '[:lower:]'
# → hello world

# camelCase → snake_case (using sed)
echo "myVariableName" | sed 's/\([a-z]\)\([A-Z]\)/\1_\2/g' | tr '[:upper:]' '[:lower:]'
# → my_variable_name

# snake_case → kebab-case
echo "my_variable_name" | tr '_' '-'
# → my-variable-name

Vanliga frågor

Vad är skillnaden mellan camelCase och PascalCase?
camelCase börjar med en gemen bokstav (myVariable), medan PascalCase börjar med en versal (MyVariable). I JavaScript används camelCase för variabler och funktioner; PascalCase används för klassnamn och React-komponentnamn. C# använder PascalCase för publika metoder och egenskaper. Den enda strukturella skillnaden är det första tecknet.
Hur konverterar jag camelCase till snake_case i JavaScript?
Infoga ett understreck före varje versal med ett regex och gör sedan resultatet gement: str.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase(). Detta hanterar standard camelCase. För strängar med på varandra följande versaler som "XMLParser" behövs ytterligare ett regex-pass för att dela upp versalssekvenser korrekt.
Varför använder Python snake_case i stället för camelCase?
PEP 8, Pythons officiella stilguide publicerad 2001, valde snake_case för funktioner och variabler eftersom Guido van Rossum och kärnteamet ansåg det mer lättläst vid en första blick. Studier som Binkley m.fl. (2009) visade att snake_case-identifierare kändes igen snabbare av programmerare än camelCase i vissa läsuppgifter. Konventionen tillämpas av linters som flake8 och pylint.
Är Title Case detsamma som att skriva varje ord med stor bokstav?
Enkel Title Case skriver första bokstaven i varje ord med versal, och det är vad det här verktyget gör. Formell Title Case (AP, Chicago, APA) har ytterligare regler: artiklar (a, an, the), korta konjunktioner (and, but, or) och korta prepositioner (in, on, at) förblir gemener om de inte är det första eller sista ordet. Formell titelversalisering kräver ett lexikonuppslag, inte bara en teckennivåomvandling.
Kan verktyget hantera Unicode och icke-latinska skriftsystem?
Verktyget använder JavaScripts inbyggda metoder toUpperCase() och toLowerCase(), som följer Unicode-skiftlägesregler definierade i Unicode-standarden (kapitel 3, avsnitt 3.13). Detta hanterar korrekt accentuerade tecken (e till E), tyskt eszett (ss till SS) och grekiska bokstäver. Däremot beror språkspecifika regler som turkisk skiftlägeshantering (där gement i ska versaliseras till İ med prick, inte I) på webbläsarens språkinställning, inte verktygets.
Vad används CONSTANT_CASE till?
CONSTANT_CASE (kallas även SCREAMING_SNAKE_CASE) används för konstanter och miljövariabler. I JavaScript: const MAX_RETRIES = 3. I Python: MAX_RETRIES = 3 (per konvention, eftersom Python saknar verkliga konstanter). I skalskript: export DATABASE_URL=.... Versalstilen signalerar att ett värde inte ska tilldelas om efter initialisering.
Hur väljer jag rätt skiftlägeskonvention för mitt projekt?
Följ den dominerande konventionen för ditt språk och ramverk. JavaScript/TypeScript: camelCase för variabler, PascalCase för klasser och komponenter. Python: snake_case för funktioner och variabler, PascalCase för klasser. CSS: kebab-case. SQL: snake_case för kolumner och tabeller. REST API JSON-nycklar: matcha ditt frontendspråk (camelCase för JS-klienter, snake_case för Python-klienter). I tveksamma fall, kontrollera linter-konfigurationen eller .editorconfig i din projektkatalog.