« おすすめ度:在庫あり(BlogPet) | トップページ | 今週のお買い物 (2007.01.14~01.20) »
2007.01.20
[converter] ISBN-10 <--> ISBN-13 (JavaScript)
「[観] [converter] ISBN-10 -> ISBN-13 / ISBN-13 -> ISBN-10」の JavaScript 版です。「右クリックで ISBN → オンライン書店リンク集生成」を ISBN-13 対応するのに必要ということで、JavaScript 版の変換処理を書いてみました。
/* convISBN.js : converter ISBN10 <-> ISBN13 */ /* Copyright (c) 2007 by H.Tsujimura <tsupo@na.rim.or.jp> */ /* Distributed by LGPL. */ /* this script written by H.Tsujimura 20 Jan 2007 */ function convISBN13toISBN10(str) { var s; var c; var checkDigit = 0; var result = ""; s = str.substring(3,str.length); for ( i = 10; i > 1; i-- ) { c = s.charAt(10 - i); checkDigit += (c - 0) * i; result += c; } checkDigit = (11 - (checkDigit % 11)) % 11; result += checkDigit == 10 ? 'X' : (checkDigit + ""); return ( result ); } function convISBN10toISBN13(str) { var c; var checkDigit = 0; var result = ""; c = '9'; result += c; checkDigit += (c - 0) * 1; c = '7'; result += c; checkDigit += (c - 0) * 3; c = '8'; result += c; checkDigit += (c - 0) * 1; for ( i = 0; i < 9; i++ ) { // > c = str.charAt(i); if ( i % 2 == 0 ) checkDigit += (c - 0) * 3; else checkDigit += (c - 0) * 1; result += c; } checkDigit = (10 - (checkDigit % 10)) % 10; result += (checkDigit + ""); return ( result ); }
以下、動作試験用の html です。使用例を兼ねています。以下の html は、上記の JavaScript を convISBN.js というファイル名で保存して使うことを前提にして書いています。
<html> <head> <title>ISBN10 <-> ISBN13</title> <meta http-equiv="Content-Script-Type" content="text/javascript"> <script type="text/javascript" src="convISBN.js"></script> <script type="text/javascript"> function preEdit(str) { var len = str.length; var c; var s; if ( (str.substring(0,4) == 'ISBN') || (str.substring(0,4) == 'isbn') ) { str = str.substring(4, len); len = str.length; } s = ""; for ( i = 0; i < len; i++ ) { // > c = str.charAt(i); if ( (c == '-') || (c == ' ') ) continue; s += c; } str = s; return ( str ); } </script> </head> <body> <p>this is a test page.</p> <p> ISBN-10: 4-8443-2364-4 -> ISBN-13: <script type="text/javascript"> document.write(convISBN10toISBN13(preEdit("4-8443-2364-4"))); </script> <br> ISBN-13: 978-4-8124-2952-5 -> ISBN-10: <script type="text/javascript"> document.write(convISBN13toISBN10(preEdit("978-4-8124-2952-5"))) </script> </p> </body> </html>
投稿者: tsupo 2007.01.20 午後 10:20
| 固定リンク
|
|
|
|
|
アマゾンわくわく探検隊
トラックバック
この記事のトラックバックURL:
この記事へのトラックバック一覧です: [converter] ISBN-10 <--> ISBN-13 (JavaScript):
» jQueryで本の表紙画像を表示してみる from HrsTのブログ「継続は力なり」
動くものが、とりあえずできた。何をやっているかというと、tdISBN||*****tdと書かれたHTML文をtdimg/tdに置き換える処理をやってます。で、*****の部分は書籍ISBN番号の10桁または13桁を書く。そうすると、画像を用意しなくても、楽天Web Serviceから表紙画像を取得できるようになる。じゃぁ、スクリプト部分ね。ちなみにISBNの桁変換は、観測気球さんのHPを参考にしています。&... 続きを読む