LoginSignup
4
4

More than 5 years have passed since last update.

ES6で文字列の長さを正しく取得する

Posted at

lengthで文字列の長さを正しく取得できないケースがある

一般的にJavaScript文字列のlength属性で文字列の長さを取得できますが、日本語第3水準字、第4水準字、絵文字などのUnicodeで表現する文字が正しく取得できない場合があります。

  • 絵文字の例:🙏
const str = '\u{1F64F}';
console.log(str + 'の長さ:' + str.length);

実行結果:

🙏の長さ:2

ES6の配列展開で正確な文字列の長さを取得する

配列展開(Array Spread)で文字列を文字配列に変換するときに、文字列に含まれる個々のunicode文字が正しく分けられます。

const str = '\u{1F64F}';
console.log(str + 'の長さ:' + [...str].length);

実行結果:

🙏の長さ:1

参考記事

JavaScriptでのサロゲートペア文字列のメモ

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4