# How to Capitalize a Word in JavaScript
Back to another round of Pictorials, where we solve popular algorithm challenges step-by-step with tidbits. Today, let's learn how to capitalize a word!
Here are the 4 methods I'll be covering:
☝️ Click more on the methods if you want to learn more. They're covered in my Web Basics series 👩🏻🏫
# The Challenge
Write a function that capitalize a string.
# 1. toLowerCase()
Unfortunately in JavaScript, there isn't a capitalize or title case a string. So what we can is utilize toLowerCase()
to make the entire string lower-cased and then uppercase the first letter.
Convert the entire string to lower case.
# 2. charAt()
Let's access the first letter of our string so we can uppercase it later.
Get the first character of the string
# 3. toUpperCase()
Great! Now we can uppercase that first letter.
Transform the first character to upper case
# 4. slice()
So there's 2 part of our string to complete our capitalization. The first letter which has been upper-cased and we got that with charAt()
. Next we need the rest of our letters. And we can extract using .slice()
.
Extract the entire string except the first letter
# 3. +
Alright, we have all the pieces. Next, we need to put it together. We can use our +
operator to combine strings.
Combine the strings
# Final Solution
Awesome! We have successfully capitalize our string 🥳
# More Solutions
Using charAt
function capitalize(word) {
const lower = str.toLowerCase();
return str.charAt(0).toUpperCase() + lower.slice(1);
}
Using Bracket Notation
function capitalize(word) {
return word[0].toUpperCase() + word.slice(1).toLowerCase();
}
Using substring
function capitalize(word) {
return word[0].toUpperCase() + word.substring(1).toLowerCase();
}
Using 2 steps
function capitalize(word) {
const loweredCase = word.toLowerCase();
return word[0].toUpperCase() + loweredCase.slice(1);
}
Using Rest parameter
function capitalize([first, ...rest]) {
return first.toUpperCase() + rest.join('').toLowerCase();
}
Using Map
function capitalize(word) {
return word
.split('')
.map((letter, index) =>
index ? letter.toLowerCase() : letter.toUpperCase(),
)
.join('');
}
Using Regex
function capitalize(word) {
return word
.toLowerCase()
.replace(/\w/, firstLetter => firstLetter.toUpperCase());
}
Know other solutions? Submit it here