ISBNのチェック

先日投稿した jQueryで本の表紙画像を表示してみる はエラーチェックもなかったので、ISBNの正常性チェックする関数を作ってみた。


内容はチェックデジットを再計算して比較するという簡単なもの。
一応ISBN-10及び13の両方に対応できるようにしています。


 


function checkISBN(str) {
 var isbn = "";
 var checkDigit = 0;
 switch(str.length) {
  case 10:
   for (i = 10; i > 1; i-- ) {
    checkDigit += parseInt(str.charAt(10 - i)) * i;
   }
   checkDigit = (11 - (checkDigit % 11)) % 11;
   isbn =  str.substr(0,9) + (checkDigit == 10 ? 'X' :checkDigit.toString());
   break;
  case 13:
   for ( i = 0; i < 12; i++) {
    if( i % 2 == 0 )
     checkDigit += parseInt(str.charAt(i)) * 1;
    else
     checkDigit += parseInt(str.charAt(i)) * 3;
   }
   checkDigit = (10 - (checkDigit % 10)) % 10;
   isbn = str.substr(0,12) + checkDigit.toString();
   break;
 }
 return str.toUpperCase() == isbn ? true : false;
}


いつもの決まり文句ですが、このコードを使って何が起きても責任は持ちません。
素人が作ったスクリプトだということを忘れずに・・・



Viva ラーニングのSharePointコンテンツで既定の言語がまじめに動き出した?

相変わらず挙動が安定しないVivaラーニングさん。 既定の言語設定がまじめに仕事を始めたのかもしれません。 ちょっと確認したいことがあってラーニングを開くとコンテンツが一つだけになってしまいました。すべてのコンテンツが表示された状態から何も操作していないのに表示コンテンツ数が変わ...