Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript로 문자열의 각 단어 첫 글자만 대문자로 변환하는 방법


문자열을 입력받아 각 단어의 첫 글자는 대문자로, 나머지 글자는 모두 소문자로 변환하는 함수를 작성해야 한다고 가정해 보겠습니다.

예를 들어, 입력 문자열이 다음과 같다면 −

hello world coding is very interesting

출력 결과는 다음과 같아야 합니다 −

Hello World Coding Is Very Interesting

이제 문자열을 인수로 받아 각 단어의 첫 글자를 대문자로 변환한 뒤 결과 문자열을 반환하는 capitaliseTitle() 함수를 정의해 보겠습니다 −

예제

let str = 'hello world coding is very interesting';
const capitaliseTitle = (str) => {
    const string = str
    .toLowerCase()
    .split(" ")
    .map(word => {
        return word[0]
        .toUpperCase() + word.substr(1, word.length);
    })
    .join(" ");
    return string;
}
console.log(capitaliseTitle(str));

출력

콘솔 출력 결과는 다음과 같습니다 −

Hello World Coding Is Very Interesting

코드 동작 원리

위 함수가 처리되는 과정을 단계별로 살펴보면 다음과 같습니다.

  1. toLowerCase(): 먼저 전체 문자열을 소문자로 통일하여 대소문자가 섞여 있어도 일관된 결과를 얻도록 합니다.
  2. split(" "): 공백을 기준으로 문자열을 잘라 각 단어로 이루어진 배열을 만듭니다.
  3. map(): 배열의 각 단어에 대해 첫 번째 문자를 toUpperCase()로 대문자로 변환하고, substr(1, word.length)로 두 번째 문자부터 끝까지 이어 붙입니다.
  4. join(" "): 변환된 단어들을 다시 공백으로 연결해 하나의 완성된 문자열로 반환합니다.

참고로 최신 자바스크립트 환경에서는 word.slice(1)을 사용하는 것이 substr보다 권장되며, 정규표현식과 replace() 메서드를 활용하면 더 간결하게 같은 결과를 얻을 수도 있습니다.