Intl.Segmenter
Базовая поддержка Недавно стало доступно
Эта функция работает на новейших устройствах и в последних версиях браузеров. Эта функция может не работать на старых устройствах или в старых версиях браузеров. Она стала доступна во всех браузерах с апреля 2024 года.
Объект Intl.Segmenter обеспечивает локально-чувствительную сегментацию текста, позволяя получать значимые элементы (графемы, слова или предложения) из строки.
Попробуйте
const segmenterFr = new Intl.Segmenter("fr", { granularity: "word" });
const string = "Que ma joie demeure";
const iterator = segmenterFr.segment(string)[Symbol.iterator]();
console.log(iterator.next().value.segment);
// Expected output: 'Que'
console.log(iterator.next().value.segment);
// Expected output: ' '
Конструктор
-
Intl.Segmenter() - Создает новый объект
Intl.Segmenter.
Статические методы
-
Intl.Segmenter.supportedLocalesOf() - Возвращает массив, содержащий из предоставленных локалей те, которые поддерживаются без необходимости использования локали по умолчанию среды выполнения.
Свойства экземпляра
Эти свойства определены в Intl.Segmenter.prototype и используются всеми экземплярами Intl.Segmenter.
-
Intl.Segmenter.prototype.constructor - Конструктор, который создал объект экземпляра. Для экземпляров
Intl.Segmenterначальным значением является конструкторIntl.Segmenter. -
Intl.Segmenter.prototype[Symbol.toStringTag] - Начальным значением свойства
[Symbol.toStringTag]является строка"Intl.Segmenter". Это свойство используется вObject.prototype.toString().
Методы экземпляра
-
Intl.Segmenter.prototype.resolvedOptions() - Возвращает новый объект со свойствами, отражающими локаль и параметры гранулярности, вычисленные во время инициализации этого объекта
Intl.Segmenter. -
Intl.Segmenter.prototype.segment() - Возвращает новый итерируемый экземпляр
Segments, представляющий сегменты строки в соответствии с локалью и гранулярностью этого экземпляраIntl.Segmenter.
Примеры
Основное использование и отличие от String.prototype.split()
Если бы мы использовали String.prototype.split(" ") для сегментации текста по словам, мы бы не получили правильного результата, если локаль текста не использует пробелы между словами (что имеет место для японского, китайского, тайского, лаосского, кхмерского, бирманского и т. д.).
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.
// ]
Спецификации
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
Segmenter |
87 |
87 |
125 |
73 |
14.1 |
87 |
125 |
62 |
14.5 |
14.0 |
87 |
14.5 |
1.0.0 |
1.8 |
16.0.0 |
Segmenter |
87 |
87 |
125 |
73 |
14.1 |
87 |
125 |
62 |
14.5 |
14.0 |
87 |
14.5 |
1.0.0 |
1.8 |
16.0.0 |
resolvedOptions |
87 |
87 |
125 |
73 |
14.1 |
87 |
125 |
62 |
14.5 |
14.0 |
87 |
14.5 |
1.0.0 |
1.8 |
16.0.0 |
segment |
87 |
87 |
125 |
73 |
14.1 |
87 |
125 |
62 |
14.5 |
14.0 |
87 |
14.5 |
1.0.0 |
1.8 |
16.0.0 |
supportedLocalesOf |
87 |
87 |
125 |
73 |
14.1 |
87 |
125 |
62 |
14.5 |
14.0 |
87 |
14.5 |
1.0.0 |
1.8 |
16.0.0 |
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter