最近、読んだ本の感想を定期的にX/Twitterに投稿しており、投稿する内容はNotion上で作成/蓄積しています。
その際、投稿できる文字数上限を超えないよう、Notion上で文字数を確認できるようにしたため、紹介します。
全角文字数のカウント
対象のテキストから、正規表現でASCIIコード(0x00 - 0x7f)を除外した文字数をカウントする。
length(replaceAll(prop("テキスト"), "[\x00-\x7f]", ""))
半角文字数のカウント
対象のテキストから、正規表現でASCIIコード(0x00 - 0x7f) 以外を除外した文字数をカウントする。
length(replaceAll(prop("テキスト"), "[^\x00-\x7f]", ""))
X/Twitterでの文字数のカウント
全角文字数 + 半角文字数 / 2 でカウントできる。
length(replaceAll(prop("テキスト"), "[\x00-\x7f]", "")) + length(replaceAll(prop("テキスト"), "[^\x00-\x7f]", "")) / 2
この値が140文字を超えないようにすればOKです。
なお、投稿内容にURLを含める場合、一つにつき11.5文字(半角23文字)、もしくは12文字(半角23+1文字)を加算する必要があるため注意してください。
私の場合、投稿内容に必ず一つURLを含めるため、改行 + URLを考慮して 全角文字数 + 半角文字数 / 2 + 12 としています。
参考
以下の記事を参考にさせていただきました。
hkob.notion.site