[javascript] 문자열을 케밥 케이스로 변환하기

자바스크립트에서는 언더스코어(_)나 카멜 케이스(camelCase)와 같은 네이밍 컨벤션을 사용하는 경우가 많습니다. 하지만 때로는 문자열을 케밥 케이스(kebab-case)로 변환해야 할 때가 있습니다.

예를 들어, “HelloWorld”라는 문자열을 “hello-world”로 변환하려면 어떻게 해야 할까요? 이번 포스트에서는 이러한 문자열 변환을 어떻게 할 수 있는지 살펴보겠습니다.

방법 1: 정규 표현식 사용

가장 간단한 방법은 정규 표현식을 사용하는 것입니다. 다음은 정규 표현식을 이용하여 문자열을 케밥 케이스로 변환하는 예제입니다.

function kebabCase(str) {
  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
}

console.log(kebabCase("HelloWorld")); // hello-world

위의 코드에서는 replace() 메소드를 사용하여 문자열에서 정규 표현식에 매치되는 부분을 찾고, $1-$2를 사용하여 대소문자 사이에 하이픈을 삽입합니다. 마지막으로 toLowerCase() 메소드를 사용하여 전체 문자열을 소문자로 변환합니다.

방법 2: 문자열 반복과 조건문 사용

또 다른 방법은 문자열 반복과 조건문을 사용하는 것입니다. 다음은 이 방법을 이용하여 문자열을 케밥 케이스로 변환하는 예제입니다.

function kebabCase(str) {
  let result = '';

  for (let i = 0; i < str.length; i++) {
    const char = str[i];

    if (char === char.toUpperCase()) {
      result += '-' + char.toLowerCase();
    } else {
      result += char;
    }
  }

  return result;
}

console.log(kebabCase("HelloWorld")); // hello-world

위의 코드에서는 문자열을 반복하면서 각 문자가 대문자인 경우에는 대문자 앞에 하이픈을 추가한 후, 소문자로 변환하여 결과 문자열에 추가합니다. 그렇지 않은 경우에는 그대로 결과 문자열에 추가합니다.

결론

이번 포스트에서는 자바스크립트에서 문자열을 케밥 케이스로 변환하는 두 가지 방법을 살펴보았습니다. 필요에 따라 더 간단한 방법이나 다른 방법을 사용할 수 있지만, 위의 예제들은 문자열을 케밥 케이스로 변환하는 간단하면서도 효과적인 방법을 보여줍니다.

참고 자료: