-
str.length
gives the count of UTF-16 units. -
Unicode-proof way to get string length in codepoints (in characters) is
[...str].length
as iterable protocol splits the string to codepoints. -
If we need the length in graphemes (grapheme clusters), we have these native ways:
a. Unicode property escapes in RegExp. See for example: Unicode-aware version of \w or Matching emoji.
b. Intl.Segmenter — coming soon, probably in ES2021. Can be tested with a flag in the last V8 versions (realization was synced with the last spec in V8 86). Unflagged (shipped) in V8 87.
See also: