くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

Twitterでツイートできる文字数を正確に数える(絵文字もURLも)

Nuxt.jsでツイートするアプリを作りたいなと思い、
文字数ってどうやって計算するんだろ?って思ったら、
公式でライブラリ(twitter-text)が用意されているらしいので、使ってみたときの備忘録

Java版/Ruby版/JavaScript版/Objective-C版などいろいろあるらしい。

インストール

$ npm install twitter-text

使い方

const twitter = require('twitter-text');

// ツイートするテキスト
const tweetText = "This is a test tweet";

// twitter-textで計算
const result = twitter.parseTweet(tweet);
console.log(result)
/* Returns:
  {
    weightedLength: 20,
    permillage: 71,
    valid: true,
    displayRangeEnd: 19,
    displayRangeStart: 0,
    validRangeEnd: 19,
    validRangeStart: 0
  }
*/

// 日本語版の場合、文字数を2で割るとツイッターと同じになる。
const textLength = result.weightedLength / 2;

以上!!

参考にしたサイト