Intl.Segmenter
Baseline 2024Newly available
Since April 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Das Intl.Segmenter
-Objekt ermöglicht lokalisierungssensitives Textsegmentieren, wodurch Sie bedeutungsvolle Einheiten (Grapheme, Wörter oder Sätze) aus einer Zeichenkette abrufen können.
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: ' '
Konstruktor
Intl.Segmenter()
-
Erstellt ein neues
Intl.Segmenter
-Objekt.
Statische Methoden
Intl.Segmenter.supportedLocalesOf()
-
Gibt ein Array zurück, das die angegebenen Locales enthält, die unterstützt werden, ohne auf die Standardeinstellung des Laufzeitumgebungs-Locales zurückzufallen.
Instanz-Eigenschaften
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 derIntl.Segmenter
-Konstruktor. Intl.Segmenter.prototype[Symbol.toStringTag]
-
Der Anfangswert der
[Symbol.toStringTag]
-Eigenschaft ist die Zeichenkette"Intl.Segmenter"
. Diese Eigenschaft wird inObject.prototype.toString()
verwendet.
Instanz-Methoden
Intl.Segmenter.prototype.resolvedOptions()
-
Gibt ein neues Objekt mit Eigenschaften zurück, die die während der Initialisierung dieses
Intl.Segmenter
-Objekts berechneten Lokalisierungs- und Granularitätsoptionen widerspiegeln. Intl.Segmenter.prototype.segment()
-
Gibt eine neue iterierbare
Segments
-Instanz zurück, die die Segmente einer Zeichenkette gemäß der Lokalisierung und Granularität dieserIntl.Segmenter
-Instanz repräsentiert.
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, bekäme man kein korrektes Ergebnis, falls die Sprache des Textes keine Leerzeichen zwischen Wörtern verwendet (was z. B. für Japanisch, Chinesisch, Thai, Lao, Khmer, Myanmar usw. der Fall ist).
const str = "吾輩は猫である。名前はたぬき。";
console.table(str.split(" "));
// ['吾輩は猫である。名前はたぬき。']
// The two sentences are not correctly segmented.
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
Specification |
---|
ECMAScript® 2025 Internationalization API Specification # segmenter-objects |
Browser-Kompatibilität
BCD tables only load in the browser