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

JavaScript로 문장 속 대문자 단어를 찾아 앞에 문자를 추가하는 방법

JavaScript로 문장 속 대문자 단어를 찾아 앞에 문자 추가하기

다음과 같이 여러 개의 대문자로 시작하는 단어가 포함된 문자열이 있다고 가정해 보겠습니다.

const str = "Connecting to server Connection has been successful We found result";

우리가 작성해야 할 함수는 이러한 문자열을 입력받아, 문자열 안에서 모든 대문자 바로 앞의 공백에 쉼표(',')를 삽입하는 JavaScript 코드입니다.

정규 표현식을 활용한 해결 방법

이 문제는 정규 표현식(RegExp)과 문자열의 replace() 메서드를 조합하면 간단하게 해결할 수 있습니다. 정규 표현식 /.[A-Z]/g는 '임의의 한 문자 + 대문자' 패턴을 문자열 전체에서 검색하므로, 대문자 앞에 위치한 공백까지 함께 매칭됩니다.

전체 코드는 다음과 같습니다.

const str = "Connecting to server Connection has been successful We found result";
const capitaliseNew = str => {
    let newStr = '';
    const regex = new RegExp(/.[A-Z]/g);
    newStr = str.replace(regex, ',$&');
    return newStr;
};
console.log(capitaliseNew(str));

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

Connecting to server, Connection has been successful, We found result

코드 동작 원리

  • /.[A-Z]/g: 점(.)은 줄바꿈을 제외한 임의의 문자 하나(여기서는 대문자 앞의 공백)를 의미하고, [A-Z]는 알파벳 대문자 하나를 의미합니다. 끝의 g(global) 플래그는 문자열 전체에서 일치하는 모든 패턴을 찾도록 합니다.
  • ',$&': 치환 문자열에서 특수 패턴 $&는 매칭된 원본 문자열을 그대로 의미합니다. 따라서 '공백 + 대문자'로 매칭된 부분 앞에 쉼표가 추가되어 원하는 결과를 얻을 수 있습니다.

이처럼 replace()와 정규 표현식을 활용하면 반복문 없이도 한 줄의 치환 로직으로 문장 구조를 깔끔하게 변환할 수 있습니다.