ISBN-10チェックディジット
9桁の030640615のチェックディジットは2で、完全なISBN-10は0306406152になります。10文字のコードを完成させたり、古い目録や請求書、寄贈リストのコードを検索前に確かめたりできます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 数
- 030640615
- 計算モード
- Compute
- 入力
- 030640615
- チェックディジット
- 2
- チェックディジット付き
- 0306406152
古い書籍識別子は、背表紙・請求書・図書館カタログ・出版社データベースに、10文字のISBN-10として今も現れます。末尾の文字は飾りではありません。登録グループ・出版社コード・書誌番号の打ち間違いが、単純な加重和で検出されるように選ばれたmod-11の検査文字です。本機能は、純9桁の本体からその桁を計算し(余りが10のときは0〜9または文字Xを返します)、既にお持ちの完全なISBN-10を検証します。ハイフン付き形式も区切りを除いて扱います。どちらもネットワークや保存カタログ照会なしで、同じ決定的な算術を実行します。
ISBN-10チェックディジットとは何か、なぜXが現れるか
ISBN-10は、旧ISO 2108方式における書籍版の10文字識別子です。先頭9文字は登録グループ・出版社・書名を符号化する十進数字で、第10文字はその9桁から導かれる検査文字であり、転写誤りがモジュラ条件を破りやすくします。
規格は桁に10から2までの降順重みを掛け、積を合計し、検査に重み1を付けた全体の加重和が11で割り切れるように、0から10の検査値を選びます。その値が10になる場合、2桁の文字列ではなく文字Xが印刷されます。そのため080442957Xのような有効コードがあります。
本ツールはそのmod-11規則をそのまま実装します。computeモードは9桁本体の検査文字を返し、validateモードは期待文字を再計算し、全体が11で0と合同かを報告します。ISBN-13への変換や書誌DB照会は行わず、978/979接頭の展開なしにEAN-13小売バーコードを互換扱いもしません。
ISBN-10が固定長の書誌識別子であり、カード向けLuhn mod-10やEAN-13小売桁とは別アルゴリズムだと知れば、適切なツールを選べます。関心のある文字列がISBN-10本体、または任意のX付き10文字コードであるときに本ページを使ってください。
チェックディジットの計算と完全なISBN-10の検証方法
前後の空白は削除され、内部のハイフンと空白も除去されるため、0-306-40615-2のような一般的な出版社表記を別クリーナなしで検証できます。computeが既定です。除去後にちょうど9桁を与えてください。
validateは除去後の完全な10文字ISBN-10を期待します(9桁の後に0-9またはX。Xは大文字小文字を区別せず大文字化)。空文字・誤長・末尾X以外の文字・無効なmodeは加算前に失敗し課金されません。
番号を発行・補完するときはcomputeを、利用者・取引先ファイル・スキャナが完全ISBN-10を渡すときはlookup前の真偽ゲートにvalidateを使ってください。
実システムにおけるISBN-10チェックディジットの位置づけ
ISBN-13が小売の既定になっても、出版社や包装工程は旧在庫・残部リスト・権利表でISBN-10を出し続けます。図書館や古本の流れでは、埃っぽい奥付から打たれた寄贈リストが入り、1桁の入れ替えはOPAC検索失敗の前に検証で弾くべきです。マーケット出品者は在庫ツールにISBN-10とISBN-13の混在列を貼ります。
10文字行を本チェッカーへ、13桁行をEAN系経路へ振り分けると、各系列を正しく保てます。どの流れでも契約は同じです。検査通過は書の存在・在庫・書名一致を証明せず、ISBN-10チェックディジット算法の下で文字列が整形式であることだけを示します。
任意のチェックサムと同じ誠実さの基準です。
よくある質問
ISBN-10チェックディジットとは何ですか?
ISBN-10の第10文字で、先頭9桁に対する加重mod-11和により、全体が11で0と合同になるよう計算されます。余りが値10を要するときは文字Xと書きます。
なぜチェックディジットがXになることがありますか?
ISBN-10の検査値は基数11です。必要な値が10のとき、規格は桁ではなくXを印刷し、コードを10文字のまま保ちます。
ISBN-10のチェックディジットはどう計算しますか?
9桁に10、9、8と順に2までの重みを掛けて合計します。チェックディジットは、それを1回足した合計が11で割り切れるようになる0から10の値で、10はXと書きます。
ハイフン付きのISBN-10も貼り付けられますか?
はい。空白とハイフンは先に取り除かれるので、0-306-40615-2のような形もそのまま確認できます。末尾のX以外の文字は受け付けません。
正しいISBN-10なら本は実在しますか?
いいえ。分かるのは、10文字がISBN-10の規則に合っていることだけです。書名のデータベースは照会しないため、本が存在するか、販売中か、書名と一致するかは分かりません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/isbn10 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"number":"030640615"}'const res = await fetch("https://api.kit.forhosting.com/enc/isbn10", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"number": "030640615"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/isbn10",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"number": "030640615"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/isbn10", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"number":"030640615"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"number":"030640615"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/isbn10", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"number": "030640615"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.isbn10",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
末尾X以外の文字・誤った長さ・空入力は推測せず、明確なinvalid_inputで拒否します。ブラウザで無料で使うか、公開価格でKIT APIを呼び出してください。
チェックディジットの計算と完全なISBN-10の検証方法
数字を含むnumberフィールドを送ってください(検証時は末尾の検査文字も含めます)。応答には1文字のcheck_digit(0-9またはX)、9桁+その文字のwith_check、正規化済み9桁入力、length 10、algorithm isbn10が含まれます。加重和が11で割り切れるときvalid trueを報告し、常に与えられたcheck_digit、先頭9桁だけから再計算したexpected_check_digit、9桁のpayload、length 10を含みます。この形は「入力X、期待Y」というフォーム表示を追加呼び出しなしで支えます。時計・乱数・ネットワークのない純粋なparseのため、同じ入力は無料ブラウザとAPIで常に同じJSONになります。成功リクエストあたり$0.002で、一括カタログ取込・登録フォーム・ラベル印刷をカスタム枠なしで保護できます。
実システムにおけるISBN-10チェックディジットの位置づけ
ISBN-10バーコードや可読行をまだ刷る現場は、9桁本体割当後にcomputeを呼び、Xの手計算なしでwith_checkを印刷できます。
連携の活用例
9桁の書番号を完成させる
登録グループ・出版社・書名本体を割り当てたあと、computeモードを呼び出し、with_checkを保存または印刷して、各ISBN-10に正しい末尾桁またはXを付けます。
入力・貼り付けされたISBN-10を検証する
フォームやCSVが10文字の完全コードを渡すとき(ハイフン可)、validateモードを呼び、validがfalseなら検索を止め、expected_check_digitを示して打ち間違い修正を助けます。
レガシーカタログ列を監査する
図書館や権利のエクスポート内のISBN-10フィールドを一括検証し、検査文字が再計算した期待値と一致しない行を隔離します。
技術的な質問
このAPIでISBN-10チェックディジットを計算するには?
numberに9桁、modeにcompute(またはmode省略)でPOSTします。応答にcheck_digit(0-9またはX)とwith_check(10文字の完全ISBN-10)が含まれます。
完全なISBN-10を検証するには?
10文字の完全コード(ハイフン任意)とmode validateでPOSTします。応答にvalid、check_digit、expected_check_digit、payload(先頭9桁)が含まれます。
ISBN-10チェックディジットツールは無料ですか?
ブラウザツールは無料でローカル実行です。API呼び出しは公開された基準価格$0.002の前払いKIT残高を使い、無効入力は課金されません。