Intl.Segmenter

Intl.Segmenter 객체를 사용하면 로케일에 따른 텍스트 분할이 가능하므로 문자열에서 의미 있는 항목(문자소, 단어 또는 문장)을 가져올 수 있습니다.

시도해보기

생성자

Intl.Segmenter()

새로운 Intl.Segmenter 객체를 생성합니다.

정적 메서드

Intl.Segmenter.supportedLocalesOf()

런타임의 기본 로케일로 되돌아가지 않고 지원되는 제공된 로케일을 포함하는 배열을 반환합니다.

인스턴스 속성

아래 속성은 Intl.Segmenter.prototype에 정의되어 있으며, 모든 Intl.Segmenter 인스턴스가 공유합니다.

인스턴스 매서드

Intl.Segmenter.prototype.resolvedOptions()

Intl.Segmenter 객체를 초기화하는 동안 계산된 로케일 및 세부화된 옵션을 반영하는 속성이 포함된 새 객체를 반환합니다.

Intl.Segmenter.prototype.segment()

문자열의 세그먼트를 나타내는 새로운 이터러블 Segments 인스턴스를 이 Intl.Segmenter 인스턴스의 로케일과 세분성에 따라 반환합니다.

예제

기본적인 사용법과 String.prototype.split()과의 차이

문자열을 단어로 분할하기 위해 String.prototype.split(" ")을 사용하면 텍스트의 로케일이 단어 사이에 공백을 사용하지 않는 경우(일본어, 중국어, 태국어, 라오스어, 크메르어, 미얀마어 등의 경우) 올바른 결과를 얻지 못할 수 있습니다.

js
const str = "吾輩は猫である。名前はたぬき。";
console.table(str.split(" "));
// ['吾輩は猫である。名前はたぬき。']
// 두 문장이 올바르게 분할되지 않았습니다.
js
const str = "吾輩は猫である。名前はたぬき。";
const segmenterJa = new Intl.Segmenter("ja-JP", { granularity: "word" });

const segments = segmenterJa.segment(str);
console.table(Array.from(segments));
// [{segment: '吾輩', index: 0, input: '吾輩は猫である。名前はたぬき。', isWordLike: true},
// 기타 등등.
// ]

명세서

Specification
ECMAScript Internationalization API Specification
# segmenter-objects

브라우저 호환성

BCD tables only load in the browser