ISBN CHECK
ISBN:
ISBN:
スクリプトHTML部分
ISBNCHECK JAVASCRIPT
ISBN CHECK
ISBN
ISBN
スクリプトJAVA script部分:
isbnchk.js
と保存するなりヘッダーに埋め込むなりしてローカルでも使用可能。
// isbncheck: ISBN validation checker for javascript // generated by femc.org // ver 0.1 2005/07/12 test ver window.alertつき // ver 1.0 2005/08/05 window.alertなし-チェック function chkisbn() { var isbno = document.isbn.num.value.replace(/ /g,''); var isbnolen = isbno.length; if(isbno.match(/-/g)){ isbnomatch = (isbno.match(/-/g)).length; }else{ isbnomatch = '0'; } isbnw = isbno.replace(/-/g, ''); if (isbnw.length < 9) { window.alert('ISBN length short'); return; } else if (isbnw.length > 10) { window.alert('ISBN length over'); return; } var isbn1 = isbnw.charAt(0);//1桁目 var isbn2 = isbnw.charAt(1);//2桁目 var isbn3 = isbnw.charAt(2);//3桁目 var isbn4 = isbnw.charAt(3);//4桁目 var isbn5 = isbnw.charAt(4);//5桁目 var isbn6 = isbnw.charAt(5);//6桁目 var isbn7 = isbnw.charAt(6);//7桁目 var isbn8 = isbnw.charAt(7);//8桁目 var isbn9 = isbnw.charAt(8);//9桁目 var val = eval(isbn1) * 10;//10乗 val = val + eval(isbn2) * 9;//9乗 val = val + eval(isbn3) * 8;//8乗 val = val + eval(isbn4) * 7;//7乗 val = val + eval(isbn5) * 6;//6乗 val = val + eval(isbn6) * 5;//5乗 val = val + eval(isbn7) * 4;//4乗 val = val + eval(isbn8) * 3;//3乗 val = val + eval(isbn9) * 2;//2乗 decimalval = Math.floor(val % 11); //11で割った余り小数点以下切捨て digitval = 11 - decimalval; //11から引いてやるとチェックデジットが出る if (digitval == 11) {//割り切れたのでチェックデジットは0 digitval = '0'; } else { if (digitval == 10) {//10の場合はXに置き換え digitval = 'X'; } else { digitval = digitval.toString() } } var digit = isbnw.charAt(9);//10桁目 if(digit == 'x'){digit = digit.toUpperCase();};//xが小文字のとき var MSGOK = "ISBN is OK" var MSGFAIL = "ISBN is failed" var MSGCHK = "CHECK start" if (digit == '') { document.isbn.message.value = MSGCHK; }else { if (digit == digitval) { document.isbn.message.value = MSGOK; }else { document.isbn.message.value = MSGFAIL; } } if (isbnomatch == '0'){//-がない場合 if (isbnolen == '9'){//10桁であればdigitをくっつけるだけ isbnval = isbno + digitval; }else{//10桁であれば9桁だけ抜いてdigitをくっつけるだけ isbno = isbno.substr(0,9); isbnval = isbno + digitval; } }else if(isbnomatch == '3'){//-が3つの場合 isbno = isbno.substr(0,11);//-込みで11桁抜く isbnval = isbno + '-' + digitval;//-とdigitをくっつける }else if(isbnomatch == '2'){//-が2つの場合 isbnval = isbno + '-' + digitval;//-とdigitをくっつける } document.isbn.isbnval.value = isbnval; }