ISBNコードの10桁13桁相互変換ルーチンを作ってみた 〜その5〜

グループコードが2桁のものまで対応してみた

今回追加になったグループ

    1. チェコスロバキア
    2. インド(93:India - no ranges fixed yetを除く)
    3. ノルウエー
    4. ポーランド
    5. スペイン
    6. ブラジル
    7. セルビア・モンテネグロ
    8. デンマーク
    9. イタリア語圏
    10. 韓国
    11. オランダおよびベルギーのフランドル地域(フランダース
    12. スウェーデン
    13. 国際出版者、ヨーロッパ共同体機構(Unesco、EU)

前回迄との処理の違い

グループコード毎に、何文字目から何文字目までがいくつだと、何桁編集という処理を列記していたが、今回より編集桁数の区切り毎にグループコード + 出版者コード + 9桁に足りない分を9で埋めたテーブルを作成して参照するように変更した
ようはデータとロジックを分割した

テスト方法

丸々入れ替えたので、一通りの(日本も含めて)テストを行った

スプリプトのダウンロード先

http://natu.blue.coocan.jp/data/naisbn.js

動作確認用テストページのURL

入力フォームにグループコード(0〜5、または7、80〜92) + 出版者記号 + 書名記号の9桁を入力する
http://natu.blue.coocan.jp/CheckISBN.htm

問題点

http://www.isbn-international.org/converter/ranges.htmのソースから定義テーブルを作成しているが、http://www.isbn-international.org/converter/ranges.jsで動的にページを作成しているものだから、いつ変更になったかが分からないです。
一定の期間ごとにスプリプトをダウンロードして前回のスプリプトと異なっていたらテーブルの再作成とかってスマートではないなぁ

定義テーブルの作成方法

以下、長いので興味のある人だけ

続きを読む