Intl.Segmenter

Intl.Segmenter 对象支持区域设置敏感的文本分段,使你能够从字符串中获取有意义的项目(字素、单词或句子)。

¥The Intl.Segmenter object enables locale-sensitive text segmentation, enabling you to get meaningful items (graphemes, words or sentences) from a string.

Try it

构造函数

¥Constructor

Intl.Segmenter()

创建一个新的 Intl.Segmenter 对象。

静态方法

¥Static methods

Intl.Segmenter.supportedLocalesOf()

返回一个数组,其中包含所提供的受支持的语言环境,而无需回退到运行时的默认语言环境。

实例属性

¥Instance properties

这些属性在 Intl.Segmenter.prototype 上定义并由所有 Intl.Segmenter 实例共享。

¥These properties are defined on Intl.Segmenter.prototype and shared by all Intl.Segmenter instances.

Intl.Segmenter.prototype.constructor

创建实例对象的构造函数。对于 Intl.Segmenter 实例,初始值为 Intl.Segmenter 构造函数。

Intl.Segmenter.prototype[Symbol.toStringTag]

[Symbol.toStringTag] 属性的初始值为字符串 "Intl.Segmenter"。该属性在 Object.prototype.toString() 中使用。

实例方法

¥Instance methods

Intl.Segmenter.prototype.resolvedOptions()

返回一个新对象,其属性反映了在此 Intl.Segmenter 对象初始化期间计算的区域设置和粒度选项。

Intl.Segmenter.prototype.segment()

根据此 Intl.Segmenter 实例的区域设置和粒度,返回一个新的可迭代 Segments 实例,表示字符串的分段。

示例

¥Examples

基本用法以及与 String.prototype.split() 的区别

¥Basic usage and difference from String.prototype.split()

如果我们使用 String.prototype.split(" ") 对文本进行单词分割,如果文本的语言环境不使用单词之间的空格(日语、中文、泰语、老挝语、高棉语、缅甸语等),我们将无法获得正确的结果。 ETC。)。

¥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.).

js
const str = "吾輩は猫である。名前はたぬき。";
console.table(str.split(" "));
// ['吾輩は猫である。名前はたぬき。']
// The two sentences are not correctly segmented.
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},
// etc.
// ]

规范

Specification
ECMAScript Internationalization API Specification
# segmenter-objects

¥Specifications

浏览器兼容性

BCD tables only load in the browser

¥Browser compatibility