Question

J'ai ISBN chiffres (10 chiffres et 13 chiffres) sans les tirets. Maintenant, je suis à la recherche d'un moyen d'ajouter ces tirets automatiquement.

J'ai trouvé des informations utiles ici: http://www.isbn.org/standards/home/isbn /international/hyphenation-instructions.asp

Mais je ne suis pas sûr que ce soit faisable du tout, parce que le Identifiant de l'éditeur a une longueur aléatoire et sans le savoir, il est peut-être pas possible de déterminer la positions correctes pour les tirets.

Quelqu'un sait s'il est possible en quelque sorte?

Merci beaucoup!

Était-ce utile?

La solution

Vous pouvez déduire la longueur de l'identifiant de l'éditeur si vous avez les tables gamme complète .

Exemple 1. ISBN 0141439564 (Penguin: Great Expectations )

  • L'identifiant de groupe est 0 (langue anglaise).
  • Les gammes éditeur pour ce groupe sont 00-19, 200-699, 7000-8499, 85000-89999, 900000-949999 et 9500000 à 9999999
  • Les deux chiffres suivants sont 14, qui est dans la gamme 00-19, de sorte que l'éditeur dispose de 2 chiffres.
  • Donc, la forme est 0-14-143956-4 césure

Exemple 2. ISBN 2253004227 (Pocher germinal )

  • L'identificateur de groupe est 2 (langue française)
  • Les gammes éditeur pour ce groupe sont 00-19, 200-349, 35000-39999, 400-699, 7000-8399, 84000-89999, 900000-949999, 9500000 à 9999999
  • Les trois chiffres suivants sont 253, qui est dans la gamme 200-349, de sorte que l'éditeur a 3 chiffres
  • Donc, la forme est 2-253-00422-7 césure

Vous pouvez vérifier votre algorithme à la Bibliothèque du Congrès de ISBN outil césures .

Autres conseils

Pour Python, vous pouvez utiliser la bibliothèque python-stdnum , isbnid ou isbn_hyphenate . Ils peuvent couper les mots numéros ISBN et utiliser la table de plage mentionnée dans l'autre réponse.

J'ai écrit la fonction JavaScript suivante pour Césure numéro ISBN (je sais qu'il ya aussi isbnjs , mais cela est plus compact et plus facile d'inclure dans d'autres projets, je pense).

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

Jetez un oeil à https://pypi.python.org/pypi/isbntools , il vous permettra de 'de numéros ISBN et des Césure beaucoup plus, comme l'extraction, cleanning, transformer et obtenir des métadonnées.

Ceci est une bibliothèque (que vous pouvez utiliser dans votre programme), mais il installe plusieurs « scripts » que vous pouvez utiliser à partir de la ligne de commande.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top