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

JavaScript 정규식으로 쉼표와 다음 단어 뒤의 텍스트 제거하기

문제 상황

다음과 같은 문자열이 있다고 가정해 보겠습니다.

var sentence = 'My Name is John, Smith I live in US';
console.log("The original value="+sentence);

여기서 우리가 해야 할 작업은 쉼표 바로 뒤에 오는 단어까지만 남기고, 그 이후의 텍스트를 모두 제거하는 것입니다. 즉, "I live in US" 부분을 삭제하고 나머지는 그대로 유지하는 것이 목표입니다.

결과적으로 얻고자 하는 문자열은 다음과 같습니다.

My Name is John, Smith

해결 방법: match()와 split() 활용

이 문제는 match() 메서드와 split() 메서드를 함께 사용하면 간단하게 해결할 수 있습니다.

예제 코드

var sentence = 'My Name is John, Smith I live in US';
console.log("The original value="+sentence);
var expression = sentence.match(/([^]*)(.*)/)[1];
var positionForComma = sentence.match(/([^]*),(.*)/)[2].split(' ')[1]
var newValue = expression + ', ' + positionForComma
console.log("Updated="+newValue);

코드 동작 원리

/([^]*)(.*)/ 패턴은 쉼표 앞에 있는 전체 텍스트를 첫 번째 캡처 그룹으로 가져옵니다. 따라서 [1]을 참조하면 "My Name is John"이라는 문자열을 얻을 수 있습니다.

/([^]*),(.*)/ 패턴의 두 번째 캡처 그룹 [2]에는 쉼표 뒤의 텍스트인 "Smith I live in US"가 담겨 있습니다. 여기에 split(' ')[1]을 적용하면 공백을 기준으로 문자열을 나눈 뒤 두 번째 요소인 "Smith"만 추출됩니다.

마지막으로 두 결과를 쉼표와 공백으로 연결하면 원하는 최종 문자열이 완성됩니다.

실행 방법

위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 입력합니다.

node fileName.js

여기서는 파일 이름이 demo175.js라고 가정하겠습니다.

실행 결과

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

PS C:\Users\Amit\javascript-code> node demo175.js
The original value=My Name is John, Smith I live in US
Updated=My Name is John, Smith