Skip to content

Case converter — UPPERCASE, lowercase, camelCase & meer

Zet tekst direct om tussen UPPERCASE, lowercase, Title Case, Sentence case, camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE en 6 andere formaten. Gratis, alleen in de browser, geen account nodig.

Geen tracking Draait in je browser Gratis
Alle case-conversie gebeurt lokaal in je browser. Er wordt geen data naar een server gestuurd.

Text cases

lowercase

Alle letters in lowercase. Witruimte behouden.

hello world example

UPPERCASE

Alle letters in uppercase. Witruimte behouden.

HELLO WORLD EXAMPLE

Title Case

Eerste letter van elk woord met een hoofdletter.

Hello World Example

Sentence case

Eerste letter van elke zin met een hoofdletter.

Hello world example

iNVERSE cASE

Wissel upper/lower voor elke letter.

hELLO wORLD eXAMPLE

aLtErNaTiNg cAsE

Wissel lower/upper per letter af.

hElLo WoRlD eXaMpLe

RaNdOm CaSe

Muntworp per letter, onafhankelijk.

HeLLo WorLd eXamPLe

Programming cases

camelCase

Eerste woord in lowercase, rest met hoofdletters, geen scheidingstekens.

helloWorldExample

PascalCase

Elk woord met een hoofdletter, geen scheidingstekens.

HelloWorldExample

snake_case

Lowercase, verbonden door underscores.

hello_world_example

kebab-case

Lowercase, verbonden door koppeltekens.

hello-world-example

CONSTANT_CASE

Uppercase, verbonden door underscores.

HELLO_WORLD_EXAMPLE

dot.case

Lowercase, verbonden door punten.

hello.world.example

path/case

Lowercase, verbonden door forward slashes.

hello/world/example

Header-Case

Elk woord met een hoofdletter, verbonden door koppeltekens.

Hello-World-Example
Gecontroleerd op pariteit met lodash / change-case, correctheid van Unicode-case-mapping, stabiliteit van acroniem-round-trip, en de feature-set van zeven text-cases + acht programming-cases. — Go Tools Engineering Team · May 26, 2026

Wat is een case converter?

Een case converter is een klein hulpmiddel dat een stuk tekst neemt en het opnieuw rendert in een andere letter-case-conventie. De simpelste vormen zijn UPPERCASE en lowercase — wissel elke letter naar één case. De rijkere vormen passen linguïstische regels toe (Title Case zet de eerste letter van elk woord met een hoofdletter, Sentence case zet de eerste letter van elke zin met een hoofdletter) of programming-naming regels (camelCase verbindt woorden door elk woord na het eerste met een hoofdletter te zetten; snake_case zet alles in lowercase en verbindt met underscores). Online case converters bestaan al sinds het web textareas heeft, omdat de conversie mechanisch simpel is maar saai om met de hand te doen voor een niet-triviale hoeveelheid tekst.

De text-case-familie is degene waar schrijvers, redacteuren, marketeers en journalisten naar grijpen. UPPERCASE en lowercase zijn nuttig om de huisstijl te matchen of schreeuwerige ALL-CAPS uit een doorgestuurde e-mail te verwijderen. Title Case is voor koppen en boektitels. Sentence case is de moderne webstandaard voor bodytext, UI-microcopy, knoplabels en bijschriften — de stijlgidsen van Google, Apple en Microsoft zijn er het afgelopen decennium allemaal op geconvergeerd. De mocking-varianten (iNVERSE cASE, aLtErNaTiNg cAsE, RaNdOm CaSe) komen uit internetcultuur, met name de "spongebob-meme" die wordt gebruikt om iemand sarcastisch te citeren; alternating case is de strikte deterministische variant, random case de chaotische.

De programming-case-familie is degene die ontwikkelaars elke dag gebruiken. camelCase is de standaard voor identifiers in JavaScript, Java, Swift en Kotlin. PascalCase is de standaard voor class-namen in de meeste objectgeoriënteerde talen en component-namen in React, Vue en Angular. snake_case is de standaard voor Python, Ruby, Rust en Elixir, plus de meeste databasekolomnamen. kebab-case is de standaard voor CSS-class-namen, URL-slugs en HTML-attributen. CONSTANT_CASE is de standaard voor omgevingsvariabelen, top-level constanten en macro-namen. dot.case wordt gebruikt voor namespacing (Java-packages, MongoDB-veldpaden). path/case wordt gebruikt voor URL's en filesystem-paden. Header-Case is de canonieke HTTP/1.1 header-conventie (Content-Type, Access-Control-Allow-Origin).

Onder de motorkap is de interessante engineering de tokenizer die een invoer-string splitst in zijn semantische woorden. Het is makkelijk om op witruimte te splitsen; het moeilijke deel is woordgrenzen herkennen die geen witruimte-scheidingsteken hebben. De standaardconventie — gebruikt door lodash, het change-case npm-pakket, de PEP 8 van Python en de meeste echte codebases — voegt een grens in bij drie overgangen: lower-to-upper (parseHTML → parse / HTML), upper-to-upper-to-lower (XMLHttpRequest → XML / Http / Request), en letter-naar-cijfer / cijfer-naar-letter (file2x → file / 2 / x). Plus de expliciete scheidingstekens: koppelteken, underscore, punt, slash, backslash. Met die ene tokenizer kun je een identifier in elke case plakken — camelCase, snake_case, kebab-case, gemengd — en schoon converteren naar elke andere case zonder handmatige opschoning.

De tool die je gebruikt draait de tokenizer en alle 15 transformaties volledig in je browser met JavaScript. Er is geen netwerkverzoek, geen server, geen logging, geen cookie die opslaat wat je typt. De output voor elke case updatet bij elke toetsaanslag zonder debounce-vertraging. De Kopiëren-knop op elke kaart schrijft alleen die ene case naar je klembord. Opnieuw schudden rolt de random case opnieuw zonder de andere outputs te verstoren. Alles is ontworpen voor de snelheid van daadwerkelijk werk — plak, scan, kopieer, plak ergens anders.

Voor aanverwante teksttooling verwerkt de woordenteller lengte- en leestijd-metrieken, vergelijkt de text diff twee stukken tekst regel voor regel, en verifieert de regex tester pattern-matches tegen voorbeeldinvoer. Samen dekken ze het meeste tekst-vormgevings-werk dat een ontwikkelaar of contentmedewerker in een browser doet.

// The tokenizer that powers every programming-case conversion
function tokenize(input) {
  return input
    .replace(/([a-z0-9])([A-Z])/g, '$1 $2')      // lower→upper: parseHTML → parse HTML
    .replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2')   // acronym boundary: XMLHttp → XML Http
    .replace(/([A-Za-z])(\d)/g, '$1 $2')          // letter→digit: file2 → file 2
    .replace(/(\d)([A-Za-z])/g, '$1 $2')          // digit→letter: 2x → 2 x
    .replace(/[\s\-_./\\]+/g, ' ')                // collapse separators
    .split(' ').filter(Boolean);
}

// Then each case is a one-liner over the tokens
const camelCase  = (s) => tokenize(s).map((t, i) => i === 0 ? t.toLowerCase() : cap(t)).join('');
const snakeCase  = (s) => tokenize(s).map(t => t.toLowerCase()).join('_');
const kebabCase  = (s) => tokenize(s).map(t => t.toLowerCase()).join('-');
const PascalCase = (s) => tokenize(s).map(cap).join('');

function cap(t) {
  return t.charAt(0).toUpperCase() + t.slice(1).toLowerCase();
}

Belangrijkste functies

Alle 15 cases tegelijk zichtbaar

Plak je tekst en elke case rendert direct in een grid van twee kolommen. Geen formaat vooraf kiezen of door een dropdown stappen — scan de grid, kopieer degene die je nodig hebt. De text cases en programming cases zijn gesplitst in aparte secties zodat je in één oogopslag de juiste kaart vindt.

Slimme tokenizer voor programming cases

Herkent lower-to-upper grenzen (camelCase), upper-to-upper-to-lower grenzen (XMLHttpRequest → XML/Http/Request), letter-naar-cijfer grenzen (file2x), en alle gangbare scheidingstekens (-, _, ., /, \, witruimte). Komt overeen met de lodash- en change-case npm-conventies, dus de output komt terug zoals echte codebases verwachten.

Kopiëren per kaart met live feedback

Elke output-kaart heeft een eigen Kopiëren-knop — klik één keer en alleen die ene case komt op je klembord. Het label wisselt kort naar "Gekopieerd!" zodat je weet dat het werkte. Geen tekst selecteren of rechtsklikken nodig.

Realtime updates bij elke toetsaanslag

Elke case rendert opnieuw bij elke toetsaanslag zonder debounce-vertraging. Geen Omzetten-knop, geen pagina-reload, geen wachten. Gebouwd voor de snelheid van daadwerkelijk redigeren — plak, scan, kopieer, klaar.

Opnieuw schudden voor random case

De Random Case-output is onafhankelijk opnieuw te rollen met de Opnieuw schudden-knop, zonder andere outputs of de invoertekst te verstoren. Handig wanneer je een andere spongebob-meme-variant wilt voor dezelfde brontekst.

Behoudt witruimte en leestekens

Text-case transformaties (UPPERCASE, lowercase, Title, Sentence, iNVERSE, aLtErNaTiNg, RaNdOm) behouden elke spatie, regelafbreking en leesteken. Plak een document met meerdere alinea's en de opmaak overleeft intact — alleen de letter-case verandert.

Unicode-bewuste case-mappings

Gebruikt de Intl-bewuste methodes `toLocaleLowerCase` en `toLocaleUpperCase`, zodat de Turkse gepunte/punt-loze İ/ı, de Duitse ß, de Griekse final-sigma en andere locale-gevoelige cases correct worden verwerkt. De tokenizer herkent letters uit elk schrift (Unicode \p{L}).

100% browserbased privacy

Alle conversie draait lokaal in je browser. Je tekst wordt nooit geüpload, nooit gelogd, nooit opgeslagen, nooit geanalyseerd. Veilig voor niet-aangekondigde productnamen, interne variabele-schema's, concept-persberichten en al het vertrouwelijke materiaal. Nul netwerkverzoeken terwijl je typt — verifieer in het Netwerk-tabblad van je browser.

Acroniem-behoudende round-trip

Converteer XMLHttpRequest → xml_http_request → XmlHttpRequest en de structuur komt schoon terug. Dezelfde conventie als PEP 8 voor Python en het change-case-pakket voor JS — geen handmatige letter-voor-letter splitsing nodig bij het migreren van een codebase tussen case-conventies.

Case converter-alternatieven vergeleken

lodash (_.camelCase, _.snakeCase, _.kebabCase, _.startCase)

JavaScript-bibliotheek

De referentie-implementatie voor de meeste JS-codebases. Produceert identieke output aan deze tool voor de gangbare cases. lodash gebruikt een iets andere Unicode-verwerking voor randgevallen. Gebruik lodash in je code; gebruik deze tool voor eenmalige conversies of snelle spot-checks tijdens een refactor.

change-case npm-pakket

JavaScript-bibliotheek

Modulaire, tree-shakable case-conversie-bibliotheek — één functie per case. De tokenizer in deze tool komt exact overeen met de conventie van change-case v5+, dus outputs zijn byte-identiek voor ASCII-invoer. Gebruik change-case wanneer je alleen camelCase of alleen snake_case in je bundle wilt; gebruik deze tool voor interactieve conversie.

Ingebouwde case-commando's van VS Code

editor-commando

VS Code wordt geleverd met `Transform to Uppercase`, `Transform to Lowercase` en `Transform to Title Case` commando's (Cmd-Shift-P → zoeken). Geen camelCase, snake_case of andere programming cases standaard; extensies zoals "change-case" voegen ze toe. Het beste wanneer je tekst al in de editor staat; deze tool is sneller voor klembord-flow-conversies.

convertcase.net

browsertool

De originele online case converter — alleen text cases (UPPERCASE, lowercase, Sentence, Title, alternating, inverse). Geen programming cases. Bestaat al sinds begin jaren 2000 en staat nog steeds bovenaan voor veel text-case-zoekopdrachten. Deze tool dekt dezelfde text cases en voegt de acht programming cases toe.

Microsoft Word's Hoofdlettergebruik (Start > Hoofdlettergebruik)

desktop-app

Word heeft een Hoofdlettergebruik-knop op de Start-ribbon: Sentence case, lowercase, UPPERCASE, Elk Woord Met Hoofdletter, tOGGLE cASE. Geen programming cases. Workflow vereist dat je in Word zit met het bestand open. Gebruik Word wanneer je tekst al in een document staat; gebruik deze tool wanneer je in een browsertab zit.

Apple's Pages / TextEdit-transformaties

desktop-app

macOS Pages en TextEdit hebben Bewerken > Transformaties: Make Upper Case, Make Lower Case, Capitalize. Geen camelCase, snake_case of andere programming-varianten. Snel voor korte tekst in die apps; niet ontworpen voor code-identifier-werk.

Online programming-case converters (bijv. camelcasse.com)

browsertool

Speciale single-case converters die zich op één transformatie richten (alleen camelCase, alleen snake_case). Minder cases om te scannen, meer gefocuste UI. Deze tool toont alle 15 tegelijk, wat sneller is voor refactoring over meerdere cases — maar heb je er altijd maar één nodig, dan is een single-case-tool prima.

Voorbeelden van case-conversie

ALL-CAPS e-mail-onderwerp → Sentence case

URGENT: PLEASE REVIEW THE Q4 BUDGET PROPOSAL BEFORE FRIDAY

Sentence case output: "Urgent: please review the q4 budget proposal before friday" — verwijdert direct de schreeuwerige all-caps toon voor doorsturen of een beleefd antwoord. Title Case output: "Urgent: Please Review The Q4 Budget Proposal Before Friday" — als je het liever formeel-koptekst-stijl houdt. Beide gebeuren tegelijk; kies degene die bij je antwoord past.

snake_case variabele → camelCase

user_profile_image_url

camelCase output: "userProfileImageUrl" — direct bruikbaar in JavaScript, Java of Swift. PascalCase: "UserProfileImageUrl" — voor C# / .NET property-namen of React component-namen. kebab-case: "user-profile-image-url" — voor CSS-classes of URL-slugs. CONSTANT_CASE: "USER_PROFILE_IMAGE_URL" — voor omgevingsvariabelen of top-level constanten. Eén plak-actie, vier kant-en-klare identifiers.

Acroniem-zware class-naam (XMLHttpRequest)

XMLHttpRequest

De tokenizer herkent de XML / Http / Request grens. Outputs: snake_case → "xml_http_request", kebab-case → "xml-http-request", CONSTANT_CASE → "XML_HTTP_REQUEST", Header-Case → "Xml-Http-Request". Dit is precies de conventie die lodash, het change-case-pakket en de PEP 8 acroniem-verwerking van Python allemaal gebruiken — je refactor van een JS-class-naam naar een Python-module-naam kost één plak-actie, geen handmatige letter-voor-letter splitsing.

Pagina-titel naar URL-slug (Title → kebab-case)

10 Tips for Faster JavaScript: A Complete Guide

kebab-case output: "10-tips-for-faster-javascript-a-complete-guide" — de URL-veilige slug die de meeste CMS'en (WordPress, Ghost, Hugo) standaard genereren. snake_case: "10_tips_for_faster_javascript_a_complete_guide" — voor bestandsnaam-conventies. De tokenizer laat de dubbele punt en andere leestekens schoon vallen; je hoeft de titel niet eerst op te schonen.

HTTP-header-naam vanuit camel-case (Header-Case)

accessControlAllowOrigin

Header-Case output: "Access-Control-Allow-Origin" — de exacte spelling die de HTTP-spec gebruikt, klaar voor een fetch() options-object of een server-side response. kebab-case: "access-control-allow-origin" — dezelfde canonieke vorm, in lowercase (sommige HTTP-bibliotheken gebruiken dit intern). Dit is de snelste manier om een JS object-property te vertalen naar een echte header-naam.

Constante vanuit een menselijke leesbare setting (CONSTANT_CASE)

max retries per request

CONSTANT_CASE output: "MAX_RETRIES_PER_REQUEST" — direct in een config-bestand als `const MAX_RETRIES_PER_REQUEST = 3` of een `.env`-bestand als `MAX_RETRIES_PER_REQUEST=3`. snake_case: "max_retries_per_request" — voor Python-stijl module-level constanten of YAML-keys. Zelfde bron, twee bestemmingen, geen handmatige bewerking.

Zin naar spongebob-meme (aLtErNaTiNg cAsE)

this is fine, everything is going great

aLtErNaTiNg cAsE output: "tHiS iS fInE, EvErYtHiNg iS gOiNg GrEaT" — het canonieke spongebob mocking-format. De wisseling is een globale toggle over alle letters, niet per woord, wat overeenkomt met wat convertcase.net en andere meme-generators doen. RaNdOm CaSe: wisselt elke letter onafhankelijk — handig wanneer je dezelfde sarcastische energie wilt met meer chaos.

Zo gebruik je de case converter

  1. 1

    Plak of typ je tekst

    Klik in het invoerveld en typ, of plak tekst — een zin, een alinea, een identifier, een kop. Elke case-output updatet direct. Klik op Voorbeeld om een representatieve zin te laden als je gewoon wilt zien hoe de cases van elkaar verschillen.

  2. 2

    Scan de grid

    De zeven text cases (UPPERCASE, lowercase, Title, Sentence, iNVERSE, aLtErNaTiNg, RaNdOm) staan in de bovenste sectie. De acht programming cases (camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, dot.case, path/case, Header-Case) staan in de onderste sectie. Elke kaart toont zijn case-label, een beschrijving van één regel, en de geconverteerde output.

  3. 3

    Klik op Kopiëren bij de case die je wilt

    Elke output-kaart heeft een eigen kleine Kopiëren-knop. Klik één keer — de case komt op je klembord, de knop flitst "Gekopieerd!", en je bent klaar om ergens anders te plakken. Je hoeft de output-tekst niet eerst te selecteren.

  4. 4

    Schud de random case opnieuw als dat nodig is

    Wil je een andere RaNdOm CaSe-variant voor dezelfde tekst, klik dan op Opnieuw schudden in de actiebalk. Alleen de Random Case-output verandert; de invoertekst en alle andere outputs blijven hetzelfde.

  5. 5

    Wis wanneer je klaar bent

    Klik op Wissen om het invoerveld te legen en elke output te resetten. Voorbeeld laadt de demo-tekst opnieuw. Alle acties zijn direct en worden nooit naar een server gestuurd.

Veelvoorkomende case-conversie-fouten

Een hele alinea snake-casen

Een zin met meerdere woorden in de snake_case-output plakken laat het samenvallen tot één gigantische identifier — technisch de juiste snake_case van de invoer, maar nooit wat je daadwerkelijk wilt voor een identifier. Gebruik snake_case voor één identifier tegelijk (een enkele variabele-naam of samengestelde zin). Voor tekst van alinea-lengte gebruik je de text-case transformaties.

✗ Fout
Invoer: "the quick brown fox jumps over the lazy dog"
snake_case output: the_quick_brown_fox_jumps_over_the_lazy_dog
Resultaat: een identifier van 50 tekens die niemand wil.
✓ Correct
Invoer: "quickBrownFox"
snake_case output: quick_brown_fox
Resultaat: een schone identifier met drie tokens.

APA Title Case-regels verwachten

De Title Case van deze tool zet elk woord met een hoofdletter — `Hello A World Of Examples` in plaats van het AP-stijl `Hello a World of Examples`. APA-, Chicago- en AP-stijlgidsen zetten allemaal korte lidwoorden en voorzetsels in koppen in lowercase. Heb je specifiek APA-stijl koppen nodig, gebruik dan een speciale title-case-tool. Voor algemene hoofdletter-gebruik (elk woord met een hoofdletter) is deze Title Case correct.

✗ Fout
Invoer: "a tale of two cities"
Title Case van deze tool: A Tale Of Two Cities
Verwacht (AP-stijl): A Tale of Two Cities
✓ Correct
Gebruik deze tool voor algemene hoofdletters.
Gebruik een AP-stijl koptekst-tool voor redactionele titels.
Verschillende tools, verschillende conventies.

Aannemen dat PascalCase round-trips de acroniem-hoofdletter behouden

XMLHttpRequest tokeniseert naar XML / Http / Request en re-PascalCased naar XmlHttpRequest. Dit is de conventie (hij laat de tokenizer schoon terugkomen), maar als je codebase acroniem-hoofdletters behoudt (XMLHttpRequest als XMLHttpRequest houdt), dan komt het resultaat niet overeen. Spot-check voor je een project-brede hernoeming doet.

✗ Fout
Invoer: XMLHttpRequest
PascalCase output: XmlHttpRequest
Verwacht (acroniem behouden): XMLHttpRequest
✓ Correct
Accepteer het title-cased acroniem, OF
Behoud het acroniem handmatig na conversie, OF
Gebruik een tokenizer die acroniem-hints respecteert.

URL's plakken en de slashes verliezen

`https://example.com/api/users` in snake_case plakken strip alle slashes en punten en produceert `https_example_com_api_users` — technisch correct maar nutteloos als URL. URL's staan al in path/case-formaat; haal ze niet door programming-case transformaties. Wil je het protocol of de host uit een URL strippen, gebruik dan eerst een URL-parsing-tool.

✗ Fout
Invoer: https://example.com/api/users
snake_case output: https_example_com_api_users
Resultaat: geen URL meer.
✓ Correct
Invoer: https://example.com/api/users
Laat URL's met rust — ze staan al in het juiste formaat.
Voor slug-extractie parse je het URL-pad handmatig.

dot.case en dotted-identifier-notatie door elkaar halen

De dot.case-output is `user.profile.image` — lowercase tokens verbonden door letterlijke punten, geschikt voor namespacing (Java-packages, MongoDB-veldpaden, TOML-keys). Het is niet hetzelfde als JavaScript property-access-notatie (`user.profile.image` ziet er identiek uit maar betekent "de image-property van de profile-property van user"). Heb je een property-access-pad nodig, dan produceert dot.case toevallig de juiste string; heb je een programming-identifier nodig, gebruik dan camelCase of snake_case.

✗ Fout
Doel: "stel de user.profile.image variabele in"
dot.case-output als variabele-naam: `user.profile.image`
In de meeste talen is dit property-access, geen identifier.
✓ Correct
Voor één variabele: userProfileImage (camelCase).
Voor een namespaced key: user.profile.image (dot.case is correct).
Match de case aan de doel-syntax.

Verwachten dat Sentence case afkortingen verwerkt

Sentence case behandelt elke `.` gevolgd door witruimte als zinsgrens, inclusief `Mr. Smith arrived.` wat correct `Mr. Smith arrived.` wordt, maar `e.g. this example` wordt `E.g. This example` (de `g.` wordt verkeerd als zinsafsluiter behandeld). Valse positieven op afkortingen zijn een bekende beperking van elke regex-gebaseerde zin-detector; voor redactionele precisie bewerk je de output met de hand.

✗ Fout
Invoer: "e.g. this is an example. Read more."
Sentence case-output: "E.g. This is an example. Read more."
De `g.` werd ten onrechte als zinsafsluiter behandeld.
✓ Correct
Draai eerst sentence case, fix daarna de paar afkortings-randgevallen met de hand.
Of herformuleer om zin-interne punten te vermijden.
(NLP-grade zin-detectie is een aparte tool-categorie.)

Wie gebruikt deze tool

Ontwikkelaars die identifiers hernoemen over talen heen
Een JS-variabele migreren naar een Python snake_case-naam, of een CSS-class naar een React PascalCase-component, of een omgevingsvariabele naar een config-constante. Plak de bronnaam één keer, kopieer de juiste output — geen handmatige letter-voor-letter conversie.
Backend-ontwikkelaars die header-namen vertalen
HTTP-headers zoals Content-Type, Access-Control-Allow-Origin, X-Forwarded-For hebben specifieke Header-Case-spellingen. Plak een camelCase JS property-naam, kopieer de canonieke header-vorm — werkt voor fetch() options, server-middleware en proxy-configuraties.
Schrijvers die ALL-CAPS e-mailtoon verwijderen
Doorgestuurde all-caps e-mails en chat-berichten lezen als geschreeuw. Plak ze in Sentence case om de toon te ontwapenen, of Title Case om een verzorgde-kop-uitstraling te behouden. Witruimte en leestekens blijven intact.
Marketeers die koppen opstellen
Title Case voor koppen, Sentence case voor bodytext en bijschriften — de conventie die de meeste moderne stijlgidsen (AP, Google, Apple) aanbevelen. Zie beide tegelijk om te vergelijken welke past bij de plaatsing.
SEO-specialisten die URL-slugs genereren
kebab-case is de URL-slug-conventie die elk CMS verwacht. Plak een pagina-titel met leestekens en hoofdletters, kopieer de kebab-case-output — klaar voor een WordPress-, Ghost- of Hugo-slug-veld. De tokenizer strip leestekens schoon.
DBA's die kolommen en tabellen benoemen
snake_case voor kolom- en tabelnamen is de universele conventie in PostgreSQL, MySQL, SQLite en de meeste ORM's. Plak een menselijk leesbaar label of een camelCase API-veldnaam, kopieer de snake_case-versie.
Frontend-ontwikkelaars die CSS-classes schrijven
kebab-case voor class-namen is de CSS-spec-conventie (BEM, Tailwind-utilities en de meeste design-systems). Plak een JS-component-naam in camelCase, kopieer de kebab-case-versie voor de bijbehorende CSS-module.
Meme-makers en sarcasme-liefhebbers
aLtErNaTiNg cAsE en RaNdOm CaSe zijn de spongebob-meme-formats die worden gebruikt om sarcastisch te bespotten of citeren. Opnieuw schudden rolt de random variant opnieuw zonder de invoer te wijzigen — genereer er een paar tot er één goed voelt.

Tokenisatie- & conversieregels

Tokenisatie-regels
Tokens worden geëxtraheerd door een spatie in te voegen bij vier grenzen: lower-to-upper (parseHTML → parse HTML), upper-to-upper-to-lower (XMLHttp → XML Http), letter-naar-cijfer (file2 → file 2), en cijfer-naar-letter (2x → 2 x). Daarna worden gangbare scheidingstekens (witruimte, koppelteken, underscore, punt, slash, backslash) samengevoegd tot enkele spaties. De resulterende tokens worden gesplitst, getrimd en lege weggelaten. Dit komt overeen met de lodash- en change-case-pakket-conventies.
Programming-case outputs strippen leestekens
camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, dot.case, path/case en Header-Case produceren allemaal schone identifiers — leestekens in de invoer (komma's, punten, haakjes) worden weggelaten omdat ze in de meeste taal-identifiers niet kunnen voorkomen. Wil je leestekens behouden, gebruik dan een van de text-case outputs (UPPERCASE, lowercase, Title, Sentence, iNVERSE, aLtErNaTiNg, RaNdOm).
Text-case outputs behouden alles
UPPERCASE, lowercase, Title Case, Sentence case, iNVERSE cASE, aLtErNaTiNg cAsE en RaNdOm CaSe behouden allemaal witruimte, regelafbrekingen en leestekens. Plak een document met meerdere alinea's en de structuur overleeft — alleen de letter-case verandert. Deze transformaties werken teken voor teken zonder tokenisatie.
Title Case (naïeve variant)
Title Case in deze tool zet de eerste letter van elk door witruimte gescheiden woord met een hoofdletter en zet de rest in lowercase. APA-, Chicago- en AP-stijlgidsen raden aan korte lidwoorden en voorzetsels (a, an, the, of, in, for) in lowercase te zetten; die varianten verschillen genoeg om een aparte tool te rechtvaardigen. Gebruik deze Title Case voor algemene hoofdletter-gebruik; gebruik een koptekst-specifieke tool voor AP-stijl koppen.
Sentence case grens-detectie
Sentence case zet alles in lowercase en zet daarna de eerste letter van de invoer en de eerste letter na elke zinsafsluiter (. ! ? 。 ! ?) gevolgd door witruimte met een hoofdletter. De detector probeert geen afkortingen zoals Mr. of U.S.A. te disambigueren — valse positieven daar zijn rumoeriger dan de zeldzame gemiste case.
Alternating case gebruikt een globale toggle
aLtErNaTiNg cAsE wisselt tussen lower en upper voor elke letter, met een globale toggle die over woordgrenzen heen loopt. Niet-letter-tekens schuiven de toggle niet door. Dit komt overeen met de conventie van convertcase.net en andere meme-generators — voorspelbaar en reproduceerbaar voor dezelfde invoer.
Random case gebruikt Math.random()
RaNdOm CaSe draait een onafhankelijke muntworp per letter met Math.random(). Elke klik op Opnieuw schudden produceert een ander resultaat. De random-bron is niet cryptografisch sterk; prima voor informele tekst, maar gebruik het niet voor wachtwoordgeneratie (gebruik daarvoor de speciale wachtwoord-generator).
Unicode- en locale-bewuste case-mappings
Gebruikt `toLocaleLowerCase()` en `toLocaleUpperCase()` zodat de Turkse gepunte/punt-loze İ/ı, de Duitse ß (die in standaard-verwerking als SS in hoofdletters komt) en andere locale-gevoelige case-mappings correct worden verwerkt. Tokenisatie gebruikt \p{L} om letters uit elk schrift te herkennen. Programming-case outputs vallen standaard terug op ASCII-identifier-tekens voor cross-language compatibiliteit.

Aanbevolen aanpak voor het kiezen van een case

Kies de case die bij je codebase past
De juiste case voor een variabele-naam is niet de mooiste — het is degene die je codebase al gebruikt. JavaScript en Java: camelCase voor variabelen en methodes, PascalCase voor classes. Python, Ruby, Rust: snake_case voor alles behalve class-namen (die zijn PascalCase). CSS en URL's: kebab-case. Omgevingsvariabelen en constanten: CONSTANT_CASE. Match de lokale conventie; consistentie wint van theoretische correctheid.
Gebruik Sentence case voor UI-microcopy
De design-systems van Google, Apple en Microsoft zijn het afgelopen decennium allemaal gestandaardiseerd op Sentence case voor knoplabels, menu-items, dialoog-tekst en andere UI-microcopy. Title Case in UI leest nu als ouderwets en licht schreeuwerig. Bewaar Title Case voor primaire koppen, pagina-titels en boektitels.
Strip slimme aanhalingstekens voor het plakken
Plakken vanuit Microsoft Word, Google Docs of Apple Notes kan slimme aanhalingstekens (“”), em-dashes (—) en andere typografische tekens meebrengen die er identiek uitzien aan ASCII maar anders worden gecodeerd. De case-transformaties verwerken ze correct, maar converteer je naar een programming-case identifier, vervang ze dan eerst handmatig door ASCII-equivalenten om verrassingen in je code-editor te voorkomen.
Converteer één identifier tegelijk voor programming cases
camelCase, snake_case, kebab-case, enz. produceren één identifier vanuit de hele invoer. Plak je een zin in snake_case, dan krijg je één lange identifier — technisch correct maar zelden wat je wilt. Plak voor identifier-conversie één woord of samenstelling tegelijk. Voor tekst van alinea-lengte gebruik je de text-case transformaties.
Verifieer acroniem-round-trips voor je refactort
XMLHttpRequest → xml_http_request → XmlHttpRequest is de standaard round-trip; het acroniem wordt op de terugweg title-cased. Behoudt je codebase de originele acroniem-hoofdletter (XmlHttpRequest blijft XMLHttpRequest), dan komt de round-trip niet exact overeen. Spot-check een paar conversies voordat je een project-brede hernoeming doet.
Gebruik Header-Case voor HTTP/1.1, kebab-case voor HTTP/2
HTTP/1.1 is case-insensitive voor header-namen, maar Header-Case (Content-Type, X-Forwarded-For) is de conventionele menselijke leesvorm die iedereen gebruikt. HTTP/2 vereist expliciet lowercase header-namen — gebruik kebab-case daarvoor (content-type, x-forwarded-for). Bij twijfel werkt kebab-case in beide protocollen.
Opnieuw schudden voor variatie, niet voor security
Random Case is leuk voor memes, maar niet random in cryptografische zin — hij gebruikt Math.random(), wat prima is voor visuele variatie, maar niet voor iets waarbij randomness ertoe doet (wachtwoordgeneratie, security-tokens, A/B-testing). Gebruik de speciale wachtwoord-generator voor cryptografische randomness.

Veelgestelde vragen

Wat doet een case converter?
Een case converter neemt een stuk tekst en rendert het opnieuw in een andere case — UPPERCASE, lowercase, Title Case, Sentence case, of een van de programming-naming cases zoals camelCase, PascalCase, snake_case, kebab-case en CONSTANT_CASE. Deze tool toont alle 15 gangbare varianten tegelijk, zodat je niet hoeft te kiezen welke conversie je wilt voor je plakt; je plakt, scant de grid en kopieert degene die je nodig hebt. Hij draait volledig in je browser met JavaScript — geen account, geen upload, geen serverrondtrip, en geen analytics op de tekst die je plakt.
Wat is het verschil tussen camelCase, PascalCase en snake_case?
Alle drie zijn conventies voor het benoemen van identifiers met meerdere woorden in code. camelCase begint met een kleine letter en zet elk volgend woord met een hoofdletter zonder scheidingsteken: `userProfileImage`. PascalCase zet elk woord met een hoofdletter, inclusief het eerste: `UserProfileImage` — gebruikt voor class-namen in de meeste talen en component-namen in React. snake_case zet alles in lowercase en verbindt woorden met underscores: `user_profile_image` — de conventie voor Python, Ruby, Rust en de meeste databasekolomnamen. kebab-case is hetzelfde idee met koppeltekens: `user-profile-image` — gebruikt voor CSS-class-namen, URL-slugs en HTML-attributen. CONSTANT_CASE is uppercase met underscores: `USER_PROFILE_IMAGE` — voor constanten en omgevingsvariabelen. Kies degene die past bij de bestaande stijl van je codebase.
Hoe gaat de tokenizer om met acroniemen zoals XMLHttpRequest of parseHTML?
De tokenizer herkent de upper-to-upper-to-lower grens (XMLHttp → XML / Http) en de lower-to-upper grens (parseHTML → parse / HTML). Dus `XMLHttpRequest` wordt de tokens `XML`, `Http`, `Request`, en converteert schoon naar `xml_http_request`, `xml-http-request`, `XML_HTTP_REQUEST` of `Xml-Http-Request`. Dit komt overeen met de conventie van lodash, het change-case npm-pakket en de PEP 8 van Python — de de facto standaard voor acroniem-verwerking over talen heen. De ene trade-off: bij terugconvertie naar PascalCase wordt het acroniem title-cased (`XMLHttpRequest` komt terug als `XmlHttpRequest`), wat ook de standaardconventie is om ambiguïteit bij her-tokenisatie te vermijden.
Wat is Title Case versus Sentence case?
Title Case zet de eerste letter van elk woord met een hoofdletter en laat de rest in lowercase: `Hello World Example`. Deze tool gebruikt de naïeve variant — elk woord met een hoofdletter — wat de meeste mensen bedoelen met "title case" in informeel gebruik. Sommige stijlgidsen (APA, Chicago, AP) raden aan om korte lidwoorden en voorzetsels zoals `a`, `an`, `the`, `of`, `in`, `for` in lowercase te zetten; die varianten verschillen genoeg om in een aparte "headline"-tool thuis te horen. Sentence case zet alleen de eerste letter van elke zin met een hoofdletter (en de allereerste letter van de invoer): `Hello world example. This is a sentence.` Gebruik Title Case voor koppen en boektitels, Sentence case voor beschrijvingen, bijschriften en bodytext.
Wordt mijn tekst ergens geüpload?
Nee. Elke case-transformatie draait 100% in je browser met JavaScript. Je tekst wordt nooit verzonden, nooit opgeslagen op een server, nooit gelogd, en nooit geanalyseerd door mensen of AI. Je kunt het verifiëren in het Netwerk-tabblad van je browser — typen in het invoerveld of klikken op Kopiëren triggert nul netwerkverzoeken. Daardoor is de tool veilig voor niet-aangekondigde productnamen, interne variabele-schema's, juridische concept-teksten, bronnotities van journalisten en al het andere vertrouwelijke materiaal. De tool gebruikt ook geen cookies voor de invoertekst.
Hoe zet ik tekst om naar camelCase vanuit elke andere case?
Plak je tekst in het invoerveld hierboven en kopieer de camelCase output-kaart. Het werkt vanuit elk startformaat: een zin met spaties (`hello world` → `helloWorld`), snake_case (`hello_world` → `helloWorld`), kebab-case (`hello-world` → `helloWorld`), PascalCase (`HelloWorld` → `helloWorld`), CONSTANT_CASE (`HELLO_WORLD` → `helloWorld`), of zelfs een gemengd acroniem (`XMLHttpRequest` → `xmlHttpRequest`). De slimme tokenizer herkent automatisch alle gangbare grenzen, dus je hoeft de invoer niet vooraf op te schonen.
Ondersteunt de tool Unicode en niet-Engelse letters?
Ja. De case-transformaties gebruiken de Intl-bewuste JavaScript-methodes `toLocaleLowerCase()` en `toLocaleUpperCase()`, die correct omgaan met de Turkse gepunte/punt-loze `İ`/`ı`, de Duitse `ß` (die in standaard-verwerking als `SS` in hoofdletters komt), de Griekse final-sigma en andere locale-gevoelige case-mappings. Tokenisatie gebruikt Unicode-bewuste regex-patronen die letters uit elk schrift herkennen (`\p{L}`). Voor programming-case outputs (camelCase, snake_case, enz.) behandelt de tokenizer alleen ASCII-letters en cijfers standaard als identifier-tekens — wat overeenkomt met de beperkingen van de meeste programmeertalen — dus niet-Latijnse letters in de invoer gaan ongewijzigd door tokens heen.
Wat is het verschil tussen dot.case en path/case?
Beide zijn lowercase, met scheidingsteken verbonden identifiers — het enige verschil is het scheidingsteken. `dot.case` gebruikt punten: `hello.world.example`. Het is gebruikelijk voor namespacing (Java-packages, Lodash-methodes, MongoDB-veldpaden) en config-bestand keys (TOML, INI). `path/case` gebruikt forward slashes: `hello/world/example`. Het is de conventie voor URL-paden, filesystem-paden en Git-refs. Beide worden vanuit dezelfde tokenisatie geproduceerd, dus converteren tussen beide is alleen een scheidingsteken-wissel. Gebruik dot.case wanneer de identifier een hiërarchische key binnen data representeert; gebruik path/case wanneer het een letterlijke locatie representeert.
Waarom splitst de tokenizer op getallen (file2x → file, 2, x)?
Getallen als token-grenzen zijn de conventie die de meeste moderne codebases volgen — `parseUTF8` moet terugkomen als `parse_utf_8` (of `parseUtf8` in PascalCase), niet `parseutf_8`. De tokenizer behandelt elke letter-naar-cijfer en cijfer-naar-letter overgang als een grens, dus `file2x` wordt `file / 2 / x`. Als je liever cijfers aan de voorafgaande letters geplakt houdt, plak dan een handmatig getokeniseerde versie (`file 2x` met een letterlijke spatie) en de tokenizer respecteert de spatie. Deze conventie komt overeen met het change-case-pakket en PEP 8 voor Python.
Hoe verschilt alternating case van random case?
Alternating case (aLtErNaTiNg cAsE) wisselt tussen lowercase en uppercase op een deterministische manier — elke oneven letter is uppercase, elke even letter is lowercase, ongeacht woordgrens. Het resultaat is elke keer hetzelfde voor dezelfde invoer. Random case (RaNdOm CaSe) wisselt elke letter onafhankelijk met een muntworp, dus elke plak-actie produceert een ander resultaat. Klik op Opnieuw schudden om de random output opnieuw te rollen zonder het invoerveld te wissen. Beide zijn mocking-tekst-formats (de zogenoemde "spongebob-meme"); alternating is de strikte variant, random is de chaotische. Andere case-outputs worden niet beïnvloed door Opnieuw schudden.
Converteert dit HTTP-header-namen?
Ja — gebruik de Header-Case output. Hij zet elk token met een hoofdletter en verbindt met koppeltekens, wat canonieke HTTP-header-spellingen produceert zoals `Content-Type`, `Access-Control-Allow-Origin` en `X-Forwarded-For`. Plak een camelCase JS property-naam (`accessControlAllowOrigin`) en je krijgt de exacte header-spelling die de HTTP/1.1-spec gebruikt, klaar voor een `fetch()` options-object of een server-side response. Let op: HTTP/2 prefereert lowercase header-namen (gebruik kebab-case voor die variant); HTTP/1.1 is case-insensitive, maar de Header-Case-spelling is de conventionele menselijke leesvorm.
Kan ik een hele alinea tegelijk converteren?
Ja — voor de text-case transformaties (UPPERCASE, lowercase, Title Case, Sentence case, iNVERSE, aLtErNaTiNg, RaNdOm) behoudt de tool alle witruimte, regelafbrekingen en leestekens, dus je kunt een hele alinea of zelfs een document van meerdere pagina's plakken. De programming-case transformaties (camelCase, snake_case, enz.) strippen bewust leestekens omdat ze identifiers produceren; een alinea in camelCase plakken laat het samenvallen tot één gigantische identifier, wat technisch de juiste transformatie is maar zelden nuttig. Voor tekst van documentlengte gebruik je alleen de text-case outputs; voor identifier-conversie plak je één identifier tegelijk.
Hoe nauwkeurig is dit vergeleken met lodash, change-case of andere case-bibliotheken?
De tokenizer en case-transformaties produceren byte-identieke output aan het change-case npm-pakket (`change-case` v5+) voor alle gangbare invoer — dezelfde acroniem-verwerking, dezelfde getal-als-grens regel, dezelfde Unicode letterherkenning. `_.camelCase`, `_.snakeCase`, `_.kebabCase` en `_.startCase` van lodash gebruiken een iets andere tokenizer (hij splitst op meer tekens en behandelt sommige Unicode-classes anders), maar voor ASCII-invoer komen de outputs voor de gangbare gevallen overeen. De Title Case in deze tool is de naïeve variant (elk woord met een hoofdletter); `_.startCase` van lodash doet hetzelfde. Wil je APA- of Chicago-title-case-regels (korte voorzetsels in lowercase), gebruik dan een speciale title-case-bibliotheek — deze tool optimaliseert voor de case waar de meeste mensen op zoeken.
Waarom bestaan Sentence case en Title Case allebei als ze er hetzelfde uitzien?
Ze lopen uiteen zodra de invoer meer dan één woord heeft. Sentence case zet alles in lowercase en zet alleen de eerste letter van elke zin met een hoofdletter: `hello world. this is a sentence.` wordt `Hello world. This is a sentence.` Title Case zet elk woord met een hoofdletter: `Hello World. This Is A Sentence.` Sentence case is de conventie voor bodytext, bijschriften en UI-microcopy in de meeste moderne stijlgidsen (Google, Microsoft, Apple). Title Case is de conventie voor koppen, pagina-titels, boektitels en dialoogvenster-titels in klassieke typografie. Moderne web-stijl prefereert steeds vaker Sentence case voor alles behalve primaire koppen.

Gerelateerde tools

Alle tools bekijken →