Sentence case for prose
Sentence case is the standard layout for body copy: the first letter of each sentence is capital, the rest lowercase. The transform first lowercases the whole input, then walks the text and re-capitalises any letter that sits at the start of the buffer or directly after a sentence-ending punctuation mark followed by whitespace.
Punctuation that triggers a new sentence is ., !, and ?. Other marks (commas, semicolons, colons, em-quotes) do not start a new sentence. The whitespace requirement matters: U.S.A. stays as one token because there is no space between the dot and the next letter, while End. Start. correctly capitalises both sentences.
Sentence case is the natural cleanup tool when text arrives in ALL CAPS, mIxEd cAsE, or with random first-letter capitalisation from headline-style copy. For finer control over headline-style word boundaries, see title case; for the simpler "every word's first letter" rule, see capitalize words.
How to use convert text to sentence case
- 1Paste or type your text into the input panel on the left.
- 2The result updates as you type: every letter is lowercased, then the first letter of each sentence is re-capitalised.
- 3Check the output for sentence boundaries the regex missed (initials, abbreviations) and adjust the input.
- 4Click Copy in the output header to copy the result.
- 5Click Download to save the result as a plain-text file.
Keyboard shortcuts
Drive TextResult without touching the mouse.
| Shortcut | Action |
|---|---|
| Ctrl F | Open the find & replace panel inside the input Plus |
| Ctrl Z | Undo the last input change |
| Ctrl Shift Z | Redo |
| Ctrl Shift Enter | Toggle fullscreen focus on the editor Plus |
| Esc | Close find & replace, or exit fullscreen |
| Ctrl K | Open the command palette to jump to any tool Plus |
| Ctrl S | Save current workflow draft Plus |
| Ctrl P | Run a saved workflow Plus |
What this tool actually does
Two-pass transform
The engine first runs String.prototype.toLowerCase() on the whole input, then re-walks it with the regex /(^\s*\w|[.!?]\s+\w)/g, uppercasing every letter that matches. The two-pass design is what flattens shouty input HELLO WORLD down to Hello world in one go.
Sentence boundaries: . ! ?
A sentence ends at a period, exclamation mark, or question mark followed by whitespace. The next word-character after that whitespace is capitalised. Other punctuation (commas, colons, semicolons) does not start a new sentence.
First word of the text
The very first word-character in the buffer is also capitalised, even if it is preceded by leading whitespace. Empty inputs return an empty string.
Diacritics preserved
Lowercase mapping uses Unicode rules, so accents stay attached. RÉSUMÉ. CAFÉ. becomes Résumé. Café. with diacritics intact.
Initials and abbreviations
The detector looks for whitespace after the dot. U.S.A. and e.g. stay as single tokens because there is no space between the marks. e.g. example will capitalise Example after the second dot, which is a known limitation; rewrite the abbreviation if you need the next word lowercase.
Worked example
Every sentence-starting letter is now capital and the body is lowercased. Note the second line has no terminal punctuation; that's fine, the leading The is still capitalised because it begins the buffer (after the newline counts as start-of-line whitespace for the regex).
this is sentence one. this is sentence two! and a question? the QUICK brown FOX jumps OVER the lazy dog
This is sentence one. This is sentence two! And a question? The quick brown fox jumps over the lazy dog
Settings reference
| Behaviour | Effect on output |
|---|---|
| Whole-text lowercase | Pass one runs toLowerCase() on the entire input. HELLO -> hello. |
| Start-of-text letter | Capitalised. Leading whitespace is allowed. |
| After . ! ? + whitespace | Next word-character is capitalised. End. start. -> End. Start.. |
| After , ; : - and other marks | No capitalisation. The case stays as set by pass one. |
| Initials with no space (U.S.A.) | Treated as one token because there is no whitespace between marks. The leading U capitalises if it starts a sentence. |
| Whitespace and line endings | Unchanged. LF stays LF, CRLF stays CRLF. |
FAQ
Does it handle questions and exclamations?
., !, and ? equally. are you ok? yes! becomes Are you ok? Yes!What about abbreviations like e.g. or U.S.A.?
U.S.A.) stay as one token. e.g. followed by a space will capitalise the next word, which is a known limitation; rewrite the abbreviation if that bothers you.Will it capitalise after a colon?
., !, and ? as sentence endings. A colon mid-line does not start a new sentence.