Das „Intl.Segmenter“-Objekt ist jetzt Teil von Baseline

Sie können jetzt Intl.Segmenter für die länderspezifische Textsegmentierung verwenden, um einen String in Wörter, Sätze oder Grapheme aufzuteilen.

Unterstützte Browser

  • 87
  • 87
  • 125
  • 14.1

Quelle

In vielen nicht-lateinischen Sprachen wie Chinesisch und Japanisch werden keine Leerzeichen zum Trennen der Wörter verwendet. Wenn Sie also die JavaScript-Methode split() für Leerzeichen verwenden, um Text in Wörter aufzuteilen, werden daher falsche Ergebnisse zurückgegeben.

Übergeben Sie beim Erstellen eines neuen Intl.Segmenter-Objekts mit dem Konstruktor Intl.segmenter() einen locale und Optionen, einschließlich granularity, die die Werte "grapheme", "word" oder "sentence" haben können. Im folgenden Beispiel wird ein neues Intl.Segmenter-Objekt für Japanisch erstellt, bei dem nach Wörtern aufgeteilt wird.

const segmenter = new Intl.Segmenter('ja-JP', { granularity: 'word' });

Wenn Sie die Methode segment() für ein Intl.Segmenter-Objekt mit einem Textstring aufrufen, wird ein iterierbarer Wert zurückgegeben:

const segments = segmenter.segment(str);
console.table(Array.from(segments));

Ein hervorragendes Tutorial zur Verwendung dieser Funktion finden Sie im Polypane-Blog unter Using the Intl.Segmenter API (Intl.Segmenter API verwenden).

Internationale Textsegmentierung mit Intl.Segmenter in JavaScript enthält weitere Beispiele, einschließlich der Verwendung von Intl.Segmenter mit Emojis.