Intl.Segmenter()-Konstruktor

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.

Der Intl.Segmenter()-Konstruktor erstellt Intl.Segmenter-Objekte.

Probieren Sie es aus

const segmenterFr = new Intl.Segmenter("fr", { granularity: "word" });
const string1 = "Que ma joie demeure";

const iterator1 = segmenterFr.segment(string1)[Symbol.iterator]();

console.log(iterator1.next().value.segment);
// Expected output: 'Que'

console.log(iterator1.next().value.segment);
// Expected output: ' '

Syntax

js
new Intl.Segmenter()
new Intl.Segmenter(locales)
new Intl.Segmenter(locales, options)

Hinweis: Intl.Segmenter() kann nur mit new konstruiert werden. Ein Versuch, es ohne new aufzurufen, löst einen TypeError aus.

Parameter

locales Optional

Ein String mit einem BCP 47 Sprach-Tag oder eine Intl.Locale Instanz, oder ein Array solcher Sprach-Identifikatoren. Die Standard-Locale des Laufzeitsystems wird verwendet, wenn undefined übergeben wird oder wenn keiner der angegebenen Sprach-Identifikatoren unterstützt wird. Für die allgemeine Form und Interpretation des locales-Arguments siehe die Parameterbeschreibung auf der Intl Hauptseite.

options Optional

Ein Objekt, das die folgenden Eigenschaften in der Reihenfolge ihrer Abfrage enthält (alle sind optional):

localeMatcher

Der Locale-Vergleichsalgorithmus, der verwendet werden soll. Mögliche Werte sind "lookup" und "best fit"; der Standardwert ist "best fit". Für Informationen zu dieser Option siehe Locale-Erkennung und Verhandlung.

granularity

Wie granular der Eingabetext aufgeteilt werden soll. Mögliche Werte sind:

"grapheme" (Standard)

Teilt den Eingabetext an den Grenzen von Grapheme-Clustern (von Benutzern wahrgenommene Zeichen), wie durch die Locale bestimmt.

"word"

Teilt den Eingabetext an Wortgrenzen, wie durch die Locale bestimmt.

"sentence"

Teilt den Eingabetext an Satzgrenzen, wie durch die Locale bestimmt.

Rückgabewert

Eine neue Intl.Segmenter-Instanz.

Ausnahmen

RangeError

Wird ausgelöst, wenn locales oder options ungültige Werte enthalten.

Beispiele

Grundlegende Verwendung

Das folgende Beispiel zeigt, wie man mit der japanischen Sprache Wörter in einem String zählt (wobei das Aufteilen des Strings mit String-Methoden ein falsches Ergebnis geliefert hätte).

js
const text = "吾輩は猫である。名前はたぬき。";
const japaneseSegmenter = new Intl.Segmenter("ja-JP", { granularity: "word" });
console.log(
  [...japaneseSegmenter.segment(text)].filter((segment) => segment.isWordLike)
    .length,
);
// 8, as the text is segmented as '吾輩'|'は'|'猫'|'で'|'ある'|'。'|'名前'|'は'|'たぬき'|'。'

Spezifikationen

Specification
ECMAScript® 2025 Internationalization API Specification
# sec-intl-segmenter-constructor

Browser-Kompatibilität