How to Title Case a String in Javascript
March 15, 2020
Converting a string to title case essentially means capitalizing the first letter of each word. For example, changing this is a string to This Is A String. However, different use-cases require different functionality.
Title Case a String in Javascript Perserving Other Capitals
Most acronyms (ASAP, OMW) and some strings have capital letters within the word itself McDonald. In these cases, we need to preserve those capitals while only capitalizing the first character.
Title Case with Regex
The shortest way to accomplish this is to use regex to match only the first character of each string and use the built-in method .toUpperCase to capitalize it.
ES6 Version
1.const toTitleCase = str => str.replace(/S/g, t => t.toUpperCase());
ES5 Version
1.function toTitleCase(str) {2. return str.replace(/S/g, function(txt) {3. return txt.charAt(0).toUpperCase();4. });5.}
Title Case with For Loop
We can also use a for loop to loop over each letter of each word and uppercase only the first character using charAt(0).
1.function toTitleCase(str) {2. str = str.split(" ");3. for (var i = 0; i < str.length; i++) {4. str[i] = str[i].charAt(0).toUpperCase() + str[i].slice(1);5. }6. return str.join(" ");7.}
Usage
1.const newStr = toTitleCase("we need to go ASAP");
This will generate the following title cased string:
1."We Need To Go ASAP";
Title Case a String in Javascript Removing Other Capitals
In some cases, you might want to lowercase all other capital letters in the word. For example, the string yEs wE can has two incorrectly capitalized Es. The correct string should be Yes We Can.
Title Case with Regex - Remove Capital
sES6 Version
1.const toTitleCase = str =>2.str.replace(3. /wS*/g,4. t => t.charAt(0).toUpperCase() + t.slice(1).toLowerCase()5.);
ES5 Version
1.function toTitleCase(str) {2. return str.replace(/wS*/g, function(txt) {3. return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();4. });5.}
Title Case with For Loop Removing Capitals
1.function toTitleCase(str) {2. str = str.toLowerCase();3. str = str.split(" ");4. for (var i = 0; i < str.length; i++) {5. str[i] = str[i].charAt(0).toUpperCase() + str[i].slice(1);6. }7. return str.join(" ");8.}
Usage
1.const newString = toTitleCase("we need to go ASAP");
This will generate the following title cased string:
1."We Need To Go Asap";
More JavaScript Snippets
Popular Articles
I Can't Believe It's Not CSS: Styling Websites with SQL
Style websites using SQL instead of CSS. Database migrations for your styles. Because CSS is the wrong kind of declarative.

How I Built an Oreo Generator with 1.1 Sextillion Combinations
Building a web app that generates 1,140,145,285,551,550,231,122 possible Oreo flavor combinations using NestJS and TypeScript.

AI Model Names Are The Worst (tier list)
A comprehensive ranking of every major AI model name, from the elegant to the unhinged. Because apparently naming things is the hardest problem in AI.