Skip to content

Commit

Permalink
update(JS): web/javascript/reference/global_objects/string/length
Browse files Browse the repository at this point in the history
  • Loading branch information
undead404 committed Apr 13, 2024
1 parent b82dfa0 commit 43d7bec
Showing 1 changed file with 13 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,19 @@ function getCharacterLength(str) {
console.log(getCharacterLength("А\uD87E\uDC04Я")); // 3
```

За потреби порахувати символи за _графемними кластерами_ скористайтесь [`Intl.Segmenter`](/uk/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter). Можна спершу передати рядок, який необхідно розбити, до методу [`segment()`](/uk/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/segment), а тоді ітерувати по поверненому об'єкту `Segments`, щоб отримати довжину:

```js
function getGraphemeCount(str) {
const segmenter = new Intl.Segmenter("en-US", { granularity: "grapheme" });
// Об'єкт-ітератор Segments, який вжито тут, ітерує по символах у вигляді графемних кластерів,
// кожен з яких може складатися з кількох символів Unicode
return [...segmenter.segment(str)].length;
}

console.log(getGraphemeCount("👨‍👩‍👧‍👧")); // 1
```

## Приклади

### Базове застосування
Expand Down

0 comments on commit 43d7bec

Please sign in to comment.