The Intl.Segmenter
object enables locale-sensitive text segmentation, enabling you to get meaningful items (graphemes, words or sentences) from a string.
On this page
Intl.Segmenter
Try it
Constructor
-
Intl.Segmenter()
-
Creates a new
Intl.Segmenter
object.
Static methods
-
Intl.Segmenter.supportedLocalesOf()
-
Returns an array containing those of the provided locales that are supported without having to fall back to the runtime's default locale.
Instance properties
These properties are defined on Intl.Segmenter.prototype
and shared by all Intl.Segmenter
instances.
-
Intl.Segmenter.prototype.constructor
-
The constructor function that created the instance object. For
Intl.Segmenter
instances, the initial value is theIntl.Segmenter
constructor. -
Intl.Segmenter.prototype[@@toStringTag]
-
The initial value of the
@@toStringTag
property is the string"Intl.Segmenter"
. This property is used inObject.prototype.toString()
.
Instance methods
-
Intl.Segmenter.prototype.resolvedOptions()
-
Returns a new object with properties reflecting the locale and granularity options computed during initialization of this
Intl.Segmenter
object. -
Intl.Segmenter.prototype.segment()
-
Returns a new iterable
Segments
instance representing the segments of a string according to the locale and granularity of thisIntl.Segmenter
instance.
Examples
Basic usage and difference from String.prototype.split()
If we were to use String.prototype.split(" ")
to segment a text in words, we would not get the correct result if the locale of the text does not use whitespaces between words (which is the case for Japanese, Chinese, Thai, Lao, Khmer, Myanmar, etc.).
const str = "吾輩は猫である。名前はたぬき。";
console.table(str.split(" "));
// ['吾輩は猫である。名前はたぬき。']
// The two sentences are not correctly segmented.
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},
// etc.
// ]
Specifications
Browser compatibility
Desktop | Mobile | Server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | Deno | Node.js | ||
Segmenter |
87 | 87 | preview | 73 | 14.1 | 87 | No | 62 | 14.5 | 14.0 | 87 | 1.8 | 16.0.0 | |
Segmenter |
87 | 87 | preview | 73 | 14.1 | 87 | No | 62 | 14.5 | 14.0 | 87 | 1.8 | 16.0.0 | |
resolvedOptions |
87 | 87 | preview | 73 | 14.1 | 87 | No | 62 | 14.5 | 14.0 | 87 | 1.8 | 16.0.0 | |
segment |
87 | 87 | preview | 73 | 14.1 | 87 | No | 62 | 14.5 | 14.0 | 87 | 1.8 | 16.0.0 | |
supportedLocalesOf |
87 | 87 | preview | 73 | 14.1 | 87 | No | 62 | 14.5 | 14.0 | 87 | 1.8 | 16.0.0 |
© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter