20

ダッシュなしの ISBN 番号 (10 桁と 13 桁) があります。現在、これらのダッシュを自動的に追加する方法を探しています。

ここでいくつかの有用な情報を見つけました: http://www.isbn.org/standards/home/isbn/international/hyphenation-instructions.asp

しかし、発行者の識別子の長さはランダムであり、それを知らずにダッシュの正しい位置を決定することはおそらく不可能であるため、それが実行可能かどうかはわかりません。

どういうわけかそれが可能かどうか誰かが知っていますか?

どうもありがとう!

4

4 に答える 4

18

完全な範囲のテーブルがある場合は、発行者 ID の長さを推測できます。

例 1. ISBN 0141439564 (ペンギン:​​大きな期待)

  • グループ ID は 0 (英語) です。
  • このグループの発行元の範囲は、00 ~ 19、200 ~ 699、7000 ~ 8499、85000 ~ 89999、900000 ~ 949999、および 9500000 ~ 9999999 です。
  • 次の 2 桁は 14 で、00 ~ 19 の範囲にあるため、発行元は 2 桁です。
  • したがって、ハイフンでつながれた形式は 0-14-143956-4 です。

例 2. ISBN 2253004227 (Poche: Germinal )

  • グループ ID は 2 (フランス語)
  • このグループの発行元の範囲は、00 ~ 19、200 ~ 349、35000 ~ 39999、400 ~ 699、7000 ~ 8399、84000 ~ 89999、900000 ~ 949999、9500000 ~ 9999999 です。
  • 次の 3 桁は 253 で、これは 200 から 349 の範囲にあるため、発行元は 3 桁です。
  • したがって、ハイフンでつないだ形式は 2-253-00422-7 です。

アルゴリズムは、米国議会図書館のISBN ハイフネーション ツールで確認できます。

于 2010-11-11T13:48:02.820 に答える
5

Python の場合、ライブラリpython-stdnumisbnidまたはisbn_hyphenateを使用できます。ISBN をハイフンでつないで、他の回答に記載されている範囲テーブルを使用できます。

于 2011-08-04T20:25:18.203 に答える
1

ISBN をハイフネーションするために、次の JavaScript 関数を作成しました ( isbnjsもあることは知っていますが、これはよりコンパクトで、他のプロジェクトに含めるのが簡単だと思います)。

https://gist.github.com/aurimasv/6693537

于 2013-09-25T00:57:50.167 に答える