match()와 정규 표현식으로 특수 문자 분리하기
JavaScript에서 문자열에 포함된 특수 문자를 분리하려면 match() 메서드와 정규 표현식(Regular Expression)을 함께 사용하면 됩니다. 기본 문법은 다음과 같습니다.
yourStringName.flatMap(anyVariableName => yourVariableName.match(/\w+|\W+/g));
여기서 사용된 정규 표현식 /\w+|\W+/g는 각각 다음과 같은 의미를 가집니다.
\w+: 알파벳, 숫자, 언더스코어(_)로 이루어진 연속된 문자(단어)를 매칭합니다.\W+: 단어에 속하지 않는 문자, 즉 특수 문자를 매칭합니다.
또한 flatMap()을 사용하면 배열의 각 요소에 대해 match() 결과를 펼쳐서 하나의 새로운 배열로 만들 수 있어, 분리 작업이 한 번에 처리됩니다.
예제 데이터 준비
예를 들어, 값 사이에 특수 문자가 포함된 다음과 같은 배열이 있다고 가정해 보겠습니다.
var allNames = ['John-Smith', 'David', 'Carol%Taylor'];
예제 코드
이제 실제로 특수 문자를 기준으로 텍스트를 분리해 보겠습니다. 전체 코드는 다음과 같습니다.
var allNames = ['John-Smith', 'David', 'Carol%Taylor']; var output = allNames.flatMap(obj => obj.match(/\w+|\W+/g)); console.log(output);
프로그램 실행 방법
위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 입력하면 됩니다.
node fileName.js
여기서는 파일 이름을 demo32.js로 사용했습니다.
실행 결과
위 코드를 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.
PS C:\Users\Amit\JavaScript-code> node demo32.js [ 'John', '-', 'Smith', 'David', 'Carol', '%', 'Taylor' ]
출력 결과를 보면 'John-Smith'는 'John'과 '-' 그리고 'Smith'로, 'Carol%Taylor'는 'Carol'과 '%' 그리고 'Taylor'로 각각 분리된 것을 알 수 있습니다. 이처럼 match()와 정규 표현식, flatMap()을 조합하면 복잡한 반복문 없이도 문자열 내의 단어와 특수 문자를 손쉽게 분리할 수 있습니다.