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
构造函数
静态方法
实例属性
¥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
实例,表示字符串的分段。
示例
基本用法以及与 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.).
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.
// ]
规范
Specification |
---|
ECMAScript Internationalization API Specification # segmenter-objects |
浏览器兼容性
BCD tables only load in the browser
¥Browser compatibility