Comment appliquer automatiquement ISBN césures?
-
08-10-2019 - |
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!
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).
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.