카멜 케이스(camelCase)는 여러 단어로 이루어진 문자열에서 첫 번째 단어의 첫 글자만 소문자로 표기하고, 나머지 단어들의 첫 글자는 대문자로 표기하며 모든 공백을 제거하는 명명 규칙입니다. 예를 들어 "Add two variables"라는 문장은 addTwoVariables로 변환됩니다.
JavaScript에서는 정규식과 replace() 메서드를 조합하면 어떤 문자열이든 간단하게 카멜 케이스로 변환할 수 있습니다.
변환 코드 예제
function convertStringToCamelCase(sentence) {
return sentence.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g,
function(camelCaseMatch, i) {
if (+camelCaseMatch === 0)
return "";
return i === 0 ? camelCaseMatch.toLowerCase() :
camelCaseMatch.toUpperCase();
});
}
console.log(convertStringToCamelCase("Add two variables"));코드 동작 원리
위 코드에서 사용된 정규식 /(?:^\w|[A-Z]|\b\w|\s+)/g는 다음과 같은 요소들을 매칭합니다.
• ^\w : 문자열의 맨 앞에 오는 첫 글자
• [A-Z] : 이미 대문자인 알파벳
• \b\w : 단어 경계 뒤에 오는 첫 글자
• \s+ : 하나 이상의 공백 문자
매칭된 값 중 공백(+camelCaseMatch === 0)은 빈 문자열로 치환되어 제거되고, 인덱스가 0인 첫 글자는 소문자로, 그 외의 글자는 대문자로 변환됩니다.
프로그램 실행 방법
Node.js 환경에서 위 프로그램을 실행하려면 아래 명령어를 입력합니다.
node fileName.js
여기서는 파일 이름이 demo104.js라고 가정합니다.
실행 결과
프로그램을 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.
PS C:\Users\Amit\JavaScript-code> node demo104.js addTwoVariables
입력 문자열의 공백이 모두 제거되고, 각 단어의 첫 글자가 올바르게 대문자로 변환되어 카멜 케이스 형태의 결과가 출력되는 것을 확인할 수 있습니다.