ISBNコードの10桁13桁相互変換ルーチンを作ってみた 〜その5〜
グループコードが2桁のものまで対応してみた
今回追加になったグループ
前回迄との処理の違い
グループコード毎に、何文字目から何文字目までがいくつだと、何桁編集という処理を列記していたが、今回より編集桁数の区切り毎にグループコード + 出版者コード + 9桁に足りない分を9で埋めたテーブルを作成して参照するように変更した
ようはデータとロジックを分割した
テスト方法
丸々入れ替えたので、一通りの(日本も含めて)テストを行った
スプリプトのダウンロード先
動作確認用テストページの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で動的にページを作成しているものだから、いつ変更になったかが分からないです。
一定の期間ごとにスプリプトをダウンロードして前回のスプリプトと異なっていたらテーブルの再作成とかってスマートではないなぁ
定義テーブルの作成方法
以下、長いので興味のある人だけ