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

JavaScript에서 값이 변경될 때마다 문자열을 분할하는 방법

JavaScript에서 연속된 동일한 문자가 끝나고 새로운 값으로 변경되는 지점을 기준으로 문자열을 분할하고 싶다면, match() 메서드정규 표현식을 함께 사용하면 됩니다.

핵심 아이디어: 정규 표현식 이해하기

여기서 사용하는 정규 표현식은 다음과 같습니다.

/(.)\1*/g

이 패턴의 구성 요소를 살펴보면 다음과 같습니다.

  • (.) — 임의의 한 문자를 캡처 그룹으로 지정합니다.
  • \1* — 앞에서 캡처한 문자와 동일한 문자가 0번 이상 반복되는 부분을 매칭합니다.
  • g 플래그 — 문자열 전체에서 일치하는 모든 부분을 찾습니다.

즉, 이 패턴은 "같은 문자가 연속으로 이어지는 덩어리" 단위로 문자열을 잘라냅니다.

예제 코드

var originalString = "JJJJOHHHHNNNSSSMMMIIITTTTHHH";
var regularExpression = /(.)\1*/g;
console.log("원본 문자열=" + originalString);
var splitting = originalString.match(regularExpression);
console.log("분할 후 결과=");
console.log(splitting);

프로그램 실행 방법

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

node 파일이름.js

예를 들어, 파일 이름이 demo139.js라면 아래와 같이 실행합니다.

node demo139.js

실행 결과

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

PS C:\Users\Amit\JavaScript-code> node demo139.js
원본 문자열=JJJJOHHHHNNNSSSMMMIIITTTTHHH
분할 후 결과=[
  'JJJJ', 'O',
  'HHHH', 'NNN',
  'SSS', 'MMM',
  'III', 'TTTT',
  'HHH'
]

결과 해석

출력 결과를 보면 원본 문자열 "JJJJOHHHHNNNSSSMMMIIITTTTHHH"가 값이 변경되는 지점마다 분할되어 ['JJJJ', 'O', 'HHHH', 'NNN', 'SSS', 'MMM', 'III', 'TTTT', 'HHH'] 배열로 반환된 것을 확인할 수 있습니다. J가 4개인 구간, O 하나, H가 4개인 구간처럼 동일한 문자가 연속되는 단위별로 깔끔하게 나뉩니다.

이처럼 match()와 캡처 그룹 역참조(\1)를 활용하면 별도의 반복문 없이 간단한 한 줄의 코드로 값 변경 시점 기준 문자열 분할을 손쉽게 처리할 수 있습니다.