Segments.prototype.containing()

Baseline 2024
Newly available

Since April 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

The containing() method of Segments instances returns an object describing the segment in the string that includes the code unit at the specified index.

Try it

Syntax

js
containing(codeUnitIndex)

Parameters

codeUnitIndex Optional

A number specifying the index of the code unit in the original input string. If the value is omitted, it defaults to 0.

Return value

An object describing the segment of the original string with the following properties, or undefined if the supplied index value is out of bounds.

segment

A string containing the segment extracted from the original input string.

index

The code unit index in the original input string at which the segment begins.

input

The complete input string that was segmented.

isWordLike

A boolean value only if granularity is "word"; otherwise, undefined. If granularity is "word", then isWordLike is true when the segment is word-like (i.e., consists of letters/numbers/ideographs/etc.); otherwise, false.

Examples

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

Specifications

Specification
ECMAScript Internationalization API Specification
# sec-%segmentsprototype%.containing

Browser compatibility

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
containing

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

See also