Intl.Segmenter
Intl.Segmenter
对象支持与语言环境相关的文本分段,使你能够从字符串中获取有意义的项目(音节、单词或句子)。
试试看
构造函数
Intl.Segmenter()
-
创建一个新的
Intl.Segmenter
对象。
静态方法
Intl.Segmenter.supportedLocalesOf()
-
返回一个数组,其中包含那些在不回退到运行时默认语言环境的情况下支持的提供的语言环境。
实例属性
这些属性是在 Intl.Segmenter.prototype
上定义的,由所有 Intl.Segmenter
实例共享。
Intl.Segmenter.prototype.constructor
-
创建实例对象的构造函数。对于
Intl.Segmenter
实例,初始值为Intl.Segmenter
构造函数。 Intl.Segmenter.prototype[Symbol.toStringTag]
-
的初始值为
[Symbol.toStringTag]
属性为字符串"Intl.Segmenter"
。此属性用于Object.prototype.toString()
。
实例方法
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(" "));
// ['吾輩は猫である。名前はたぬき。']
// 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.
// ]
规范
规范 |
---|
ECMAScript 国际化 API 规范 # segmenter-objects |
浏览器兼容性
BCD 表仅在浏览器中加载