Obiekt Intl.Segmenter jest teraz częścią elementu Baseline

Rachel Andrew
Rachel Andrew

Możesz teraz używać Intl.Segmenter do podziału tekstu na segmenty według języka, aby podzielić ciąg znaków na słowa, zdania lub grafemy.

Obsługa przeglądarek

  • 87
  • 87
  • 125
  • 14.1

Źródło

W wielu językach opartych na alfabecie innym niż łaciński, np. chiński i japoński, wyrazy nie są rozdzielone spacjami. Dlatego użycie metody split() JavaScriptu do odstępów i podziału tekstu na słowa zwróci nieprawidłowe wyniki.

Podczas tworzenia nowego obiektu Intl.Segmenter za pomocą konstruktora Intl.segmenter() przekaż instrukcję locale i opcje takie jak granularity, które mogą mieć wartości "grapheme", "word" lub "sentence". Poniższy przykład pokazuje utworzenie nowego obiektu Intl.Segmenter w języku japońskim, dzieląc go na słowa.

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

Wywołanie metody segment() w obiekcie Intl.Segmenter z ciągiem tekstu zwraca element powtarzalny:

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

Przeczytaj artykuł Korzystanie z interfejsu Intl.Segmenter API na blogu Polypane, aby uzyskać doskonały samouczek na temat korzystania z tej funkcji.

International Text Segmentation with Intl.Segmenter w JavaScript zawiera więcej przykładów, w tym jak używać funkcji Intl.Segmenter z emotikonami.