Herramientas · Texto · Cambiar mayúsculas y minúsculas · Guías · How to Convert Text Case: All 12 Modes Explained
How to Convert Text Case: All 12 Modes Explained
Paste text into the case converter and pick a mode - the output updates immediately, with no Run button and nothing to submit. There are 12 modes in two groups: seven plain-text cases and five programming-identifier cases, and a few of them are easy to confuse with each other if you have not seen the exact rule each one follows.
The seven plain-text modes
UPPERCASE and lowercase do exactly what they say. Sentence case lowercases everything, then capitalizes the first letter of the string and the first letter after every sentence-ending . ! ? or Arabic ؟ that is followed by a space, so node.js and 3.5 are left alone and a closing quote after the full stop does not hide it. Title Case and Capitalized Case are the pair worth telling apart: Title Case capitalizes every word except a fixed list of small words - a, an, and, as, at, but, by, for, in, nor, of, on, or, so, the, to, up, yet - unless that word opens or closes the string or follows a colon or a dash, so "a tale of two cities" becomes "A Tale of Two Cities" with "of" staying lowercase in the middle. It gives each part of a hyphenated word its capital, skips a quote or bracket in front of a word, and leaves a word that already mixes cases, like iPhone, as typed. Capitalized Case has no such exception list and capitalizes every word, so the same phrase becomes "A Tale Of Two Cities." Neither is more correct; they are two different, real conventions kept as separate modes on purpose.
aLtErNaTiNg CaSe flips upper and lower letter by letter, treating whitespace, digits and punctuation as neutral positions that do not consume a step, so a space or a comma never breaks the alternation pattern. InVeRsE CaSe flips whichever case each character already is - an uppercase letter becomes lowercase and vice versa - and passes through anything with no case at all (digits, punctuation, Arabic letters) unchanged.
The five programming-identifier modes
camelCase, PascalCase, snake_case, kebab-case and CONSTANT_CASE all share one step first: the text is split into words at any character that is not a letter or a number (spaces, dots, commas, underscores, hyphens), at every lower-to-upper letter transition and at the end of an acronym, so a pasted myVariableName re-splits correctly into "my", "Variable", "Name" if you run it through a second conversion, and parseHTMLString becomes "parse", "HTML", "String". An apostrophe is dropped rather than split on, so "don't" is "dont", and the result is always made of letters and numbers only. From there, camelCase lowercases the first word and capitalizes the rest with no separator; PascalCase capitalizes every word with no separator; snake_case lowercases and joins with underscores; kebab-case lowercases and joins with hyphens; CONSTANT_CASE uppercases and joins with underscores.
What happens with Arabic input
Arabic script has no uppercase or lowercase distinction, so the seven case-based modes leave Arabic letters visually unchanged - there is nothing to convert, and that is correct, not a limitation the tool is hiding. The five programming-case modes still restructure Arabic text, because that transform is about finding word boundaries and joining them, not about letter case - so حالة الطلب run through snake_case still removes the space and inserts an underscore between the two words, exactly as it would for Latin text.
Two worked examples, checkable by hand
Title Case on "a tale of two cities" produces "A Tale of Two Cities" - "of" stays lowercase because it's on the small-word list and sits in the middle, not at either end. Capitalized Case on the same input produces "A Tale Of Two Cities" - every word capitalized, no exceptions. Same input, one word different, because the two modes follow genuinely different rules rather than one being a stricter version of the other.
The chained-conversion case is worth checking too: pasting myVariableName into snake_case produces my_variable_name, correctly splitting at the lower-to-upper transitions even though there are no spaces or underscores in the input to split on. Paste that snake_case result back in and switch to camelCase, and it produces myVariableName again exactly - the tokenizer recognizes underscores as word boundaries on the second pass, so converting back and forth doesn't degrade into Myvariablename the way a naive first-letter-only capitalizer would.
Every mode runs on text up to 200,000 characters with no upload at any point - the conversion happens in your browser and the result is ready to copy the moment you pick a mode.