« おすすめ度:在庫あり(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を参考にしています。&... 続きを読む



