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

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

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

有人知道是否有可能吗?

非常感谢!

有帮助吗?

解决方案

如果您有 全范围表.

示例1. ISBN 0141439564(企鹅: 巨大的期望)

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

示例2. ISBN 2253004227(Poche: Gérminal)

  • 小组标识符是2(法语)
  • 该组的发行人范围为00–19、200–349、35000–39999、400–699、7000–8399、84000–89999、900000–949999、9500000-999999999
  • 接下来的三位数字是253,在200-349范围内,因此出版商有3位数字
  • 因此,连字符是2-253-00422-7

您可以在国会图书馆检查算法 ISBN连字符工具.

其他提示

对于Python,您可以使用库 python-stdnum, Isbnid 或者 ISBN_HYPHENATE. 。它们可以连字符ISBN,并使用另一个答案中提到的范围表。

我将以下JavaScript功能写给了连字符ISBNS(我知道也有 isbnjs, ,但这更紧凑,更容易包含在我认为的其他项目中)。

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

看一眼 https://pypi.python.org/pypi/isbntools, ,它将使您可以“连字符” ISBN,例如提取,清洁,转换和获取元数据。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top