Skip to the tool

Case converter

MDV Tools

Paste text and pick a case.

Runs on this device Works offline
0 characters
Result
paste text above
How this works

UPPER and lower call the engine's toUpperCase and toLowerCase on the whole text. Title and Sentence also change letters where they stand. None of the four touches anything but letters: line breaks, punctuation and spacing come out as they went in.

Title finds words, which are runs of letters, digits and combining marks with ' or ’ allowed between two of them, so dog's is one word. It uppercases the first character of each word and lowercases the rest, so NASA becomes Nasa, iPhone becomes Iphone and 1st stays 1st. There is no list of small words to leave lowercase, because that list differs by style guide.

Sentence lowercases everything, then capitalises a letter that opens the text or follows ., ! or ? and a space. Closing quotes or brackets may sit between the mark and the space, and opening quotes, brackets, ¿ and ¡ in front of the letter are skipped. A sentence that opens with a digit gets no capital. An abbreviation such as e.g. ends a sentence too, and proper nouns are not recognised, so they come out lowercase.

camelCase, PascalCase, snake_case, kebab-case and CONSTANT_CASE rebuild the text from its words and drop every other character, punctuation included. Words split at any character that is not a letter, digit or combining mark (Unicode-aware, \p{L}, \p{N}, \p{M}) and where a lowercase letter or digit meets a capital, so aerialScrew becomes two words and HTTPServer becomes HTTP and Server. A lone s after capitals stays with them, so userIDs becomes user_ids. An apostrophe between letters is dropped without splitting the word, so don't stop becomes dontStop. Text with no letters or digits leaves nothing to rebuild, and the page says so.

With "one result per line" on, Sentence and the identifier cases convert each line on its own, so a list stays a list and every line starts a sentence. Off, the whole text is one word sequence and a line break does not start a sentence. UPPER, lower and Title give the same result either way.

Casing uses the default locale rules, so Turkish dotless ı and German ß follow Unicode's language-neutral mapping (ß uppercases to SS). Input above 2,000,000 characters is refused rather than attempted, so the tab never hangs. Nothing is uploaded: there is no server in this file.

The Dark button remembers its setting in this browser's local storage. Nothing you type or drop into the page is stored.