JavaScript에서 문자열의 각 단어 첫 글자만 대문자로 바꾸고 싶다면, split(), charAt(), toUpperCase() 세 가지 메서드를 조합하면 간단하게 해결할 수 있습니다.
핵심 로직
처리 순서는 다음과 같습니다.
먼저 split(' ') 메서드를 사용해 공백을 기준으로 문자열을 단어별로 분리합니다. 이후 각 단어에서 charAt(0)으로 첫 번째 문자를 추출하고, 추출한 문자에 toUpperCase()를 적용해 대문자로 변환합니다. 마지막으로 나머지 문자열과 결합한 뒤 join(' ')으로 다시 하나의 문장으로 합치면 됩니다.
예제 코드
function capitalizeTheFirstLetterOfEachWord(words) {
var separateWord = words.toLowerCase().split(' ');
for (var i = 0; i < separateWord.length; i++) {
separateWord[i] = separateWord[i].charAt(0).toUpperCase() +
separateWord[i].substring(1);
}
return separateWord.join(' ');
}
console.log(capitalizeTheFirstLetterOfEachWord("my name is john"));실행 방법
위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 입력합니다. 여기서는 파일 이름이 demo43.js라고 가정하겠습니다.
node fileName.js
실행 결과
프로그램을 실행하면 각 단어의 첫 글자가 모두 대문자로 변환된 아래와 같은 결과가 출력됩니다.
PS C:\Users\Amit\JavaScript-code> node demo43.js My Name Is John
코드 설명
toLowerCase()를 먼저 호출하는 이유는 입력 문자열에 이미 대문자가 섞여 있더라도 일관된 결과를 보장하기 위함입니다. 예를 들어 "MY NAME IS JOHN"처럼 전부 대문자로 입력되어도 정상적으로 처리됩니다. 또한 substring(1)은 인덱스 1부터 끝까지의 문자열을 반환하므로, 첫 글자를 제외한 나머지 부분을 그대로 유지할 수 있습니다.