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

조건에 따라 문자열 대소문자 변환하기 - JavaScript

이번 글에서는 문자열을 인수로 받아 특정 조건에 따라 대소문자를 변환하는 자바스크립트(JavaScript) 함수를 작성해 보겠습니다.

요구 사항

함수가 수행해야 할 작업은 다음과 같습니다.

  • 문자열의 첫 번째 글자가 대문자라면, 전체 문자열을 모두 대문자로 변환합니다.
  • 그렇지 않다면(첫 글자가 소문자라면), 전체 문자열을 모두 소문자로 변환합니다.

구현 코드

먼저 문자열의 첫 글자를 charCodeAt() 메서드로 확인하여 아스키 코드 값이 대문자 범위(A~Z, 즉 65~90)에 속하는지 판별합니다. 이후 조건에 맞게 toUpperCase() 또는 toLowerCase()를 적용하면 됩니다.

const str1 = "This is a normal string";
const str2 = "thisIsACamelCasedString";

const changeStringCase = str => {
  let newStr = '';
  // 첫 글자의 아스키 코드가 65~90 사이인지 확인 (대문자 여부 판별)
  const isUpperCase = str[0].charCodeAt(0) >= 65 && str[0].charCodeAt(0) <= 90;
  
  if (isUpperCase) {
    newStr = str.toUpperCase();
  } else {
    newStr = str.toLowerCase();
  }
  return newStr;
};

console.log(changeStringCase(str1));
console.log(changeStringCase(str2));

실행 결과

위 코드를 실행하면 콘솔에 다음과 같은 결과가 출력됩니다.

THIS IS A NORMAL STRING
thisisacamelcasedstring

코드 설명

  • str[0]: 문자열의 첫 번째 문자에 접근합니다.
  • charCodeAt(0): 해당 문자의 유니코드(아스키) 코드 값을 반환합니다. 영어 대문자 'A'~'Z'는 각각 65~90의 값을 가집니다.
  • toUpperCase(): 문자열 전체를 대문자로 변환합니다.
  • toLowerCase(): 문자열 전체를 소문자로 변환합니다.

더 간결한 방법

삼항 연산자(조건 연산자)를 사용하면 위 함수를 한 줄로 더 깔끔하게 표현할 수 있습니다.

const changeStringCase = str =>
  str[0] === str[0].toUpperCase()
    ? str.toUpperCase()
    : str.toLowerCase();

이처럼 첫 글자를 직접 대문자와 비교하는 방식을 활용하면 아스키 코드 값을 일일이 계산하지 않고도 동일한 로직을 구현할 수 있습니다. 상황에 맞는 방법을 선택하여 사용하시기 바랍니다.