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

Sie können jetzt Intl.Segmenter zur Aufteilung eines Strings in Wörter, Sätze, oder Graphems bezeichnet.

Unterstützte Browser

  • Chrome: 87 <ph type="x-smartling-placeholder">
  • Edge: 87. <ph type="x-smartling-placeholder">
  • Firefox: 125 <ph type="x-smartling-placeholder">
  • Safari: 14.1 <ph type="x-smartling-placeholder">

Quelle

Viele nicht-lateinische Sprachen wie Chinesisch und Japanisch verwenden Sie keine Leerzeichen, um Wörter zu trennen. Wenn Sie also den JavaScript-split() auf Leerzeichen zum Aufteilen von Text in Wörter verwendet, werden falsche Ergebnisse zurückgegeben.

Wenn Sie ein neues Intl.Segmenter-Objekt mit der Methode Intl.segmenter()-Konstruktor, übergeben Sie eine locale und Optionen, darunter granularity, haben die Werte "grapheme", "word" oder "sentence". Die folgenden wird ein neues Intl.Segmenter-Objekt für Japanisch erstellt, das nach Wörtern aufteilt.

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

Durch Aufrufen der segment() -Methode auf einem Intl.Segmenter-Objekt mit einem Textstring gibt einen iterierbaren Wert zurück:

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

Intl.Segmenter API verwenden im Polypane-Blog finden Sie ein hervorragendes Tutorial zur Verwendung dieser Funktion.

Internationale Textsegmentierung mit Intl.Segmenter in JavaScript finden Sie weitere Beispiele, darunter die Verwendung von Intl.Segmenter mit Emojis.