AI文字数カウンターをJavaScriptで作る方法【読みやすさスコア・SEO分析付き】

前回の記事で公開した「AI文字数カウンター」は、テキストを入力するだけで文字数・読了時間・文字種別・読みやすさスコア・SEO分析・SNS制限チェックまでリアルタイムで一括分析するツールだ。

この記事では、そのAI文字数カウンターをHTML・CSS・JavaScriptの単一ファイルで作る方法を解説する。外部ライブラリなし、コピペで動く実装コード付き。

完成イメージと機能一覧

完成したツールは以下の機能を持つ。

  • リアルタイム文字数カウント:総文字数、スペース除く、改行除く、UTF-8バイト数
  • 単語数・段落数・行数・文数:日本語・英語両対応
  • 読了時間推定:日本語(400字/分)、英語(200語/分)
  • 文字種別の内訳:ひらがな・カタカナ・漢字・英字・数字・記号をプログレスバーで可視化
  • 読みやすさスコア:平均文長と漢字比率から100点満点で採点
  • SEO分析:タイトル文字数、メタディスクリプション、キーワード密度チェック
  • SNS文字数チェック:X(140文字)、Instagram(2200文字)、YouTube説明(5000文字)
  • コピー&クリア:ワンクリック操作

すべてクライアントサイドのJavaScriptで動作し、サーバーにデータを送信しない。プライバシーに配慮した設計だ。

設計方針

このツールの設計方針は3つだ。

  1. 単一ファイル:HTML・CSS・JavaScriptを1つのHTMLファイルに収める。外部依存なし
  2. リアルタイム更新:textareaのinputイベントで即座に全カウントを更新する
  3. ダークテーマ+ガラスモーフィズム:背景色 #0f0f23、backdrop-filter で透明感を演出

HTML構造

HTMLの構造はシンプルだ。大きく分けて4つのセクションで構成する。

  • ヘッダー:ツール名とサブタイトル
  • テキスト入力エリア:textareaとコピー・クリアボタン
  • クイック統計バー:文字数・単語数・読了時間などの主要数値
  • 分析カードグリッド:文字種別、読みやすさスコア、SEO分析、SNS制限の4カード

全体を.acc-wrapで囲むことで、WordPressに埋め込む際のCSSスコープを限定し、既存テーマとの競合を防ぐ。

CSSデザイン:ダークテーマとガラスモーフィズム

UIはダークテーマ(#0f0f23)にガラスモーフィズムを組み合わせた。カード要素にはbackdrop-filter: blur(20px)と半透明背景を適用する。CSS変数でカラーパレットを定義し、各要素で参照する。プログレスバーの色分け(ひらがな=シアン、カタカナ=パープル、漢字=グリーンなど)にも変数を使うことで、一貫性のあるデザインを実現した。

.acc-wrap {
  --bg: #0f0f23;
  --cyan: #00d4ff;
  --green: #51cf66;
  --purple: #845ef7;
  background: var(--bg);
  color: #e0e0e0;
  border-radius: 8px;
}

.acc-wrap .glass {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  backdrop-filter: blur(20px);
}

JavaScript:リアルタイム分析エンジン

JavaScript部分が最も重要だ。textareaのinputイベントにanalyze関数をバインドし、入力のたびに全分析をリアルタイムで実行する。

文字種別の判定

Unicode範囲を使って各文字の種類を判定する。ひらがなはU+3040〜U+309F、カタカナはU+30A0〜U+30FF、漢字はCJK統合漢字(U+4E00〜U+9FFF)とCJK統合漢字拡張A(U+3400〜U+4DBF)の範囲で判定する。

function isHiragana(c) {
  var code = c.codePointAt(0);
  return code >= 0x3040 && code <= 0x309F;
}
function isKatakana(c) {
  var code = c.codePointAt(0);
  return code >= 0x30A0 && code <= 0x30FF;
}
function isKanji(c) {
  var code = c.codePointAt(0);
  return (code >= 0x4E00 && code <= 0x9FFF)
      || (code >= 0x3400 && code <= 0x4DBF);
}

読みやすさスコアの算出

読みやすさスコアは2つの指標から100点満点で算出する。平均文長スコア(50点満点)は一文の平均文字数が20〜50文字なら満点、80文字を超えると大幅減点。漢字比率スコア(50点満点)は漢字の割合が20〜30%なら満点で、高すぎても低すぎても減点する。

SEO分析とSNS文字数チェック

SEO分析ではタイトル文字数(32文字以内推奨)、メタディスクリプション文字数(80〜120文字推奨)、キーワード密度(1〜5%推奨)をチェックする。SNS文字数チェックでは各SNSの文字制限に対する消費率をプログレスバーで表示し、90%で黄色、100%超で赤に切り替わる。

WordPressへの埋め込み方

WordPressのブロックエディタで「カスタムHTML」ブロックを追加し、ツールのHTML・CSS・JavaScriptをそのまま貼り付ける。CSSセレクタをすべて.acc-wrapでスコープし、キーフレームアニメーション名も固有のプレフィックスを付けて、WordPressテーマとの競合を防ぐ。

まとめ

AI文字数カウンターは、HTML・CSS・JavaScriptだけで作れる実用的なテキスト分析ツールだ。文字種の判定にはUnicode範囲、読みやすさスコアには平均文長と漢字比率、SEO分析にはキーワード密度を活用している。

完成したツールは「AI文字数カウンター」で実際に使える。ソースコードを参考に、自分好みにカスタマイズしてみてほしい。

関連記事

関連記事

JavaScriptでAIツールを作る方法をさらに学びたい方には、AI文章チェッカーをJavaScriptで作る方法の記事もおすすめです。自然言語処理を活用した文章校正ツールの実装手順を解説しています。

文章の品質チェックツールの作り方は「AI文章チェッカーをJavaScriptだけで作る方法」で解説している。完成ツールは「AI文章チェッカー」で使える。

あわせて読みたい:

AI副業適性診断ツール【無料・1分で診断】あなたに合ったAI副業がわかる

AI画像生成プロンプトビルダー【日本語で選ぶだけ】Stable Diffusion・Midjourney・DALL-E対応

Claude Codeの使い方|インストールから実践活用まで完全ガイド【2026年版】

AI副業の始め方完全ガイド|初心者が月1万円を稼ぐまでのロードマップ【2026年版】