Вопрос

У меня есть номера ISBN (10 цифр и 13 цифр) без тире. Теперь я ищу способ добавить эти тире автоматически.

Я нашел некоторую полезную информацию здесь:http://www.isbn.org/standards/home/isbn/international/hyphenation-intructions.asp.

Но я не уверен, что это выполняется вообще, потому что идентификатор издателя имеет случайную длину, и не зная его, возможно, невозможно определить правильные позиции для тире.

Кто-нибудь знает, может ли это как-то?

Большое спасибо!

Это было полезно?

Решение

Вы можете вывести длину идентификатора издателя, если у вас есть Столы полного ассортимента.

Пример 1. ISBN 0141439564 (Penguin: Большие Надежды)

  • Идентификатор группы 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: Gérminal.)

  • Идентификатор группы 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.

Другие советы

Для Python вы можете использовать библиотеку Python-Stdnum., isbnid или Isbn_hyphenate.. Отказ Они могут переносить ISBNS и использовать таблицу диапазона, упомянутой в другом ответе.

Я написал следующую функцию JavaScript для гипната ISBNS (я знаю, что есть также Isbnjs., но это более компактно и легче включить в другие проекты, которые я думаю).

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

Взгляни на https://pypi.python.org/pypi/isbntools., это позволит вам «дефизировать» ISBN и гораздо больше, таких как извлечение, очищение, преобразование и получают метаданные.

Это библиотека (которую вы можете использовать в вашей программе), но она устанавливает несколько «сценариев», которые вы можете использовать из командной строки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top