Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Intl.Segmenter

Baseline 2024
Neu verfügbar

Seit April 2024 funktioniert diese Funktion auf aktuellen Geräten und in aktuellen Browserversionen. Auf älteren Geräten oder in älteren Browsern funktioniert sie möglicherweise nicht.

Das Intl.Segmenter-Objekt ermöglicht eine lokalisierungssensitive Textsegmentierung, mit der Sie bedeutungsvolle Elemente (Grapheme, Wörter oder Sätze) aus einer Zeichenkette erhalten können.

Probieren Sie es aus

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

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

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

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

Konstruktor

Intl.Segmenter()

Erstellt ein neues Intl.Segmenter-Objekt.

Statische Methoden

Intl.Segmenter.supportedLocalesOf()

Gibt ein Array zurück, das diejenigen der angegebenen Sprachstandorte enthält, die unterstützt werden, ohne auf die Standard-Spracheinstellung der Laufzeitumgebung zurückzugreifen.

Instanzeigenschaften

Diese Eigenschaften sind auf Intl.Segmenter.prototype definiert und werden von allen Intl.Segmenter-Instanzen geteilt.

Intl.Segmenter.prototype.constructor

Die Konstruktorfunktion, die das Instanzobjekt erstellt hat. Für Intl.Segmenter-Instanzen ist der Anfangswert der Intl.Segmenter-Konstruktor.

Intl.Segmenter.prototype[Symbol.toStringTag]

Der Anfangswert der [Symbol.toStringTag]-Eigenschaft ist die Zeichenfolge "Intl.Segmenter". Diese Eigenschaft wird in Object.prototype.toString() verwendet.

Instanzmethoden

Intl.Segmenter.prototype.resolvedOptions()

Gibt ein neues Objekt mit Eigenschaften zurück, die die Sprach- und Granularitätsoptionen widerspiegeln, die während der Initialisierung dieses Intl.Segmenter-Objekts berechnet wurden.

Intl.Segmenter.prototype.segment()

Gibt eine neue iterierbare Segments-Instanz zurück, die die Segmente einer Zeichenkette gemäß der Spracheinstellung und Granularität dieser Intl.Segmenter-Instanz darstellt.

Beispiele

Grundlegende Verwendung und Unterschied zu String.prototype.split()

Wenn wir String.prototype.split(" ") verwenden würden, um einen Text in Wörter zu segmentieren, würden wir kein korrektes Ergebnis erhalten, wenn der Sprachraum des Textes keine Leerzeichen zwischen Wörtern verwendet (was für Japanisch, Chinesisch, Thailändisch, Laotisch, Khmer, Myanmar usw. der Fall ist).

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.
// ]

Spezifikationen

Spezifikation
ECMAScript® 2026 Internationalization API Specification
# segmenter-objects

Browser-Kompatibilität

Siehe auch