こんにちは、@yoheiMuneです。 Javascriptでもユニコードは大変ですね。今日は絵文字などユニコードが含まれた文字の文字数を正しく取得する方法をブログに書きたいと思います。 目次 String.prototype.lengthでは正しく取得できない 文字数を取得するには、"aaa".lengthのようにlength関数を使いますが、絵文字などの2文字で1文字を表すサロゲートペア(Surrogate Pair)では意図せず2文字とカウントされてしまいます(サロゲートペアについてはMixiのエンジニアブログでわかりやすく解説されています)。 // アルファベットはOK "aaa".length // => 3 // 日本語も基本的にOK "あああ".length // => 3 // 絵文字(ユニコード)は「2」となる "🌋".length // => 2 困ったぞという話です
![[Javascript] 絵文字(サロゲートペア)を含んだ文字列の文字数を正しく取得する - YoheiM .NET](https://cdn-ak-scissors.b.st-hatena.com/image/square/b562f8f4e4e722612d759a1f3c7fb59c3a1ff059/height=288;version=1;width=512/https%3A%2F%2Fwww.yoheim.net%2Fimage%2F482.jpg)