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