パングラム判定と不足文字の確認
文章がAからZまでの26文字をすべて使っているかを調べます。有名な例文は条件を満たし、満たさない文章には足りない文字をアルファベット順で示すので、どこを直せばよいかがすぐ分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
パングラムとは、AからZまでの英字を少なくとも1回ずつ含む文です。このチェッカーは、文、段落、ラベル、テスト文字列を調べ、条件を満たすかどうかをお知らせします。満たさない場合は、不足している文字をアルファベット順で一覧にするため、推測せずに文章を修正できます。大文字と小文字は区別せず、空白、数字、句読点、絵文字、英字以外の文字は無視します。辞書、言語モデル、ネットワーク通信を使わない決定的な判定です。
判定結果の意味
パングラムは、英語アルファベット26文字を少なくとも1回ずつ使った文章です。同じ文字が何度現れても判定は変わりません。各文字が1回以上あれば十分だからです。
大文字と小文字は区別しないため、Qとqは同じ条件を満たします。この定義は標準的な英語アルファベットだけを対象とします。文法、意味、表現の美しさや、各文字がちょうど1回だけ現れる完全パングラムかどうかは評価しません。
それらは別の文章上の観点です。明確で機械的な規則なので、自動テストにも手軽な目視確認にもご利用いただけます。
文字列を正規化して調べる仕組み
アルゴリズムは入力文字列を順に読み取り、aからzまでの各英字が現れたかを記録します。比較前に大文字と小文字を統一するため、大小文字が混在する見出しも、すべて大文字のサンプルも、通常の文と同じように扱われます。英字のASCII範囲外にある文字は無視します。
これには、空白、改行、数字、引用符、ハイフン、記号、絵文字が含まれます。アクセント付き文字を、アクセントなしの文字へ暗黙に変換することはありません。たとえばアクセント付きのeは、eとして数えず無視します。
この動作により仕様が明確になり、言語に依存した予想外の変換を防げます。その後、記録されなかった文字から不足一覧をアルファベット順に作成します。処理は決定的で、ネットワークや保存状態を使わず、26文字がそろえば走査を早く終了できます。
不足文字を文章改善やテストに活用する方法
候補となる文をテキスト欄に貼り付け、応答の2項目をご確認ください。パングラム判定が偽なら、不足文字の一覧を具体的な修正チェックリストとしてお使いいただけます。文字を単独で挿入するより、不足文字を複数含む単語を加える方が、通常は読みやすい文章になります。
デザイナーは、フォント見本、キーボードのデモ、刻印のプレビュー、アルファベットを幅広く表示するレイアウトの準備に利用できます。真偽値だけでは原因が分かりにくい失敗でも、順序が安定した不足一覧なら、アサーションで比較しやすく、画面にも表示しやすくなります。この機能が測るのは文字の網羅性であり、文章の質ではありません。
活用例
フォント見本用テキストの検証
字形の比較に使う前に、見本が英字をすべて表示しているかをご確認いただけます。
作文課題の作成
合否だけでなく、学習者のパングラムにまだ必要な文字を正確に示せます。
生成された画面文言のテスト
決定的なアサーションを処理へ追加し、不足一覧を分かりやすい失敗報告に利用できます。
よくある質問
どのような文字列がパングラムになりますか?
意味や文字の重複にかかわらず、AからZまでを少なくとも1回ずつ含む文字列です。
大文字と小文字は区別されますか?
区別されません。 同じ英字の大文字と小文字は同等として扱われます。
アクセント付き文字は通常の英字に変換されますか?
変換されません。 英語アルファベットの規則を明確で予測可能に保つため、無視されます。
不足文字はどの順番で返されますか?
不足している文字は、常にaからzまでのアルファベット順で返されます。
空白や数字、記号はどう扱われますか?
判定には使われず、そのまま無視されます。空白、改行、数字、引用符、ハイフン、記号、絵文字があっても結果は変わらず、AからZまでの英字だけを確認します。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/text/pangram-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"The quick brown fox jumps over the lazy dog."}'const res = await fetch("https://api.kit.forhosting.com/text/pangram-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "The quick brown fox jumps over the lazy dog."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/pangram-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "The quick brown fox jumps over the lazy dog."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/pangram-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"The quick brown fox jumps over the lazy dog."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"The quick brown fox jumps over the lazy dog."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/pangram-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "The quick brown fox jumps over the lazy dog."
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.pangram_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_tokens | 20000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
判定結果の意味
このチェッカーは、AからZまですべてが含まれる場合に限り、is_pangramを真として返します。また、出現しなかった文字をアルファベット順に並べたmissing_lettersも返します。そのため、真の場合は不足文字の一覧が空になり、偽の場合は何が条件達成を妨げているかを正確に確認できます。
文字列を正規化して調べる仕組み
ブラウザーとAPIは同じ純粋関数を使用します。
不足文字を文章改善やテストに活用する方法
ブラウザーではすぐに実行でき、自動リクエストの基本料金は1項目あたり$0.002です。
技術的な質問
句読点や数字はどう扱われますか?
空白、絵文字、AからZ以外の文字と同様に無視されます。
APIでの判定料金はいくらですか?
APIリクエスト1回につき$0.002です。ブラウザー版はローカルで無料実行できます。