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

자바스크립트 정규식으로 문자열의 쉼표를 원하는 값으로 교체하는 방법

문자열을 다루다 보면 특정 구분자(예: 쉼표)를 다른 값으로 바꿔야 하는 경우가 자주 있습니다. 이번 글에서는 replace() 메서드와 정규식(Regular Expression)을 활용해 문자열 속 쉼표를 원하는 값으로 교체하는 방법을 알아보겠습니다.

예제 문자열

다음과 같이 쉼표가 포함된 세 개의 문자열이 있다고 가정해 보겠습니다.

"My Favorite subject is,"
"My Favorite subject is, and teacher name is Adam Smith"
"My Favorite subject is, and got the marks 89"

해결 방법: replace()와 정규식 조합

쉼표를 교체하려면 자바스크립트의 replace() 메서드에 정규식을 인수로 전달하면 됩니다. 아래 예제에서 사용한 정규식 /,(?=[^]*$)/는 문자열에서 마지막 쉼표만 찾아내어 지정한 값으로 바꿔줍니다.

코드 예제

const makingRegularExpression = /,(?=[^]*$)/;
replaceComma("My Favorite subject is,");
replaceComma("My Favorite subject is, and teacher name is Adam Smith");
replaceComma("My Favorite subject is, and got the marks 89");
function replaceComma(values){
   console.log(values, " ==== replaced by JavaScript ==== ", values.replace(makingRegularExpression, " JavaScript"));
}

프로그램 실행 방법

위 코드를 작성한 후 Node.js 환경에서 다음 명령어로 실행할 수 있습니다.

node fileName.js

여기서는 파일 이름을 demo164.js로 저장했다고 가정합니다.

실행 결과

위 프로그램을 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.

PS C:\Users\Amit\javascript-code> node demo164.js
My Favorite subject is, ==== replaced by JavaScript ==== My Favorite subject is JavaScript
My Favorite subject is, and teacher name is Adam Smith ==== replaced by JavaScript ==== My Favorite subject is JavaScript and teacher name is Adam Smith
My Favorite subject is, and got the marks 89 ==== replaced by JavaScript ==== My Favorite subject is JavaScript and got the marks 89

정규식 패턴 해설

사용된 정규식 /,(?=[^]*$)/를 하나씩 살펴보면 다음과 같습니다.

  • `,` : 일반적인 쉼표 문자를 의미합니다.
  • `(?=[^]*$)` : 전방 탐색(lookahead)으로, 뒤따르는 문자들 중 쉼표가 없고 문자열 끝($)까지 이어지는 경우에만 매칭됩니다. 즉, 문자열의 마지막 쉼표만 선택합니다.

만약 문자열 내의 모든 쉼표를 한 번에 교체하고 싶다면, 전역 플래그(g)를 추가한 /,/g 정규식을 사용하면 됩니다. 상황에 맞게 패턴을 조절하여 활용해 보시기 바랍니다.