20

我有没有破折号的 ISBN 号码(10 位和 13 位)。现在我正在寻找一种自动添加这些破折号的方法。

我在这里找到了一些有用的信息: http ://www.isbn.org/standards/home/isbn/international/hyphenation-instructions.asp

但是我不确定它是否可行,因为发布者标识符具有随机长度,并且在不知道它的情况下,可能无法确定破折号的正确位置。

有人知道这是否可能吗?

非常感谢!

4

4 回答 4

18

如果您有完整范围的表,您可以推断出发布者标识符的长度。

示例 1. ISBN 0141439564(企鹅:远大前程

  • 组标识符为 0(英语)。
  • 该组的发布者范围为 00–19、200–699、7000–8499、85000–89999、900000-949999 和 9500000–9999999
  • 接下来的两位数是 14,在 00-19 范围内,所以发布者有 2 位数字。
  • 所以连字符的形式是 0-14-143956-4

示例 2. ISBN 2253004227 (Poche: Germinal )

  • 组标识符为 2(法语)
  • 该组的发布者范围为 00–19、200–349、35000–39999、400–699、7000–8399、84000–89999、900000–949999、9500000–9999999
  • 接下来的三位数字是 253,在 200-349 范围内,所以发布者有 3 位数字
  • 所以连字符的形式是 2-253-00422-7

您可以在美国国会图书馆的ISBN 断字工具中检查您的算法。

于 2010-11-11T13:48:02.820 回答
5

对于 Python,您可以使用库python-stdnumisbnidisbn_hyphenate。他们可以连字符 ISBN,并使用另一个答案中提到的范围表。

于 2011-08-04T20:25:18.203 回答
1

我编写了以下 JavaScript 函数来连接 ISBN(我知道还有isbnjs,但它更紧​​凑,更容易包含在我认为的其他项目中)。

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

于 2013-09-25T00:57:50.167 回答
1

看看https://pypi.python.org/pypi/isbntools,它可以让你“连字符” ISBN 等等,比如提取、清理、转换和获取元数据。

这是一个库(您可以在程序中使用),但它安装了几个可以从命令行使用的“脚本”。

于 2014-03-03T18:26:40.990 回答