试一试
const segmenterFr = new Intl.Segmenter("fr", { granularity: "word" });
const string = "Que ma joie demeure";
const segments = segmenterFr.segment(string);
console.log(segments.containing(5));
// Expected output:
// Object {segment: 'ma', index: 4, input: 'Que ma joie demeure', isWordLike: true}
语法
js
containing(codeUnitIndex)
参数
codeUnitIndex可选-
一个指定原始输入字符串中代码单元索引的数字。如果省略该值,则默认为
0。
返回值
一个描述原始字符串片段的对象,具有以下属性,如果提供的索引值越界,则返回 undefined。
segment-
一个字符串,包含从原始输入字符串中提取的片段。
index-
片段在原始输入字符串中的起始代码单元索引。
input-
被分段的完整输入字符串。
isWordLike-
仅当
granularity为"word"时为一个布尔值;否则为undefined。如果granularity为"word",则当片段是类单词(即,由字母/数字/表意文字/等组成)时,isWordLike为true;否则为false。
示例
js
// ┃0 1 2 3 4 5┃6┃7┃8┃9 ← code unit index
// ┃A l l o n s┃-┃y┃!┃ ← code unit
const input = "Allons-y!";
const segmenter = new Intl.Segmenter("fr", { granularity: "word" });
const segments = segmenter.segment(input);
let current = segments.containing();
// { index: 0, segment: "Allons", isWordLike: true }
current = segments.containing(4);
// { index: 0, segment: "Allons", isWordLike: true }
current = segments.containing(6);
// { index: 6, segment: "-", isWordLike: false }
current = segments.containing(current.index + current.segment.length);
// { index: 7, segment: "y", isWordLike: true }
current = segments.containing(current.index + current.segment.length);
// { index: 8, segment: "!", isWordLike: false }
current = segments.containing(current.index + current.segment.length);
// undefined
规范
| 规范 |
|---|
| ECMAScript® 2026 国际化 API 规范 # sec-%segmentsprototype%.containing |
浏览器兼容性
加载中…