ISBN13 CHECK
ISBN:
ISBN:
スクリプトHTML部分
ISBNCHECK JAVASCRIPT
ISBN CHECK
ISBN
ISBN
スクリプトJAVA script部分:
isbnchk13.js
と保存するなりヘッダーに埋め込むなりしてローカルでも使用可能。
// isbncheck: ISBN13 validation checker for javascript // generated by femc.org // ver 0.1 2005/08/07 test ver window.alertつき // ver 1.0 2005/08/08 window.alertなし-チェック function chkisbn() { var isbno = document.isbn.num.value.replace(/ /g,''); var isbnolen = isbno.length; var isbnhead = document.isbn.isbnhead.value; 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; } isbnw = isbnhead + isbnw; 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 isbn10 = isbnw.charAt(9);//10桁目 var isbn11 = isbnw.charAt(10);//11桁目 var isbn12 = isbnw.charAt(11);//12桁目 //奇数桁を足す var odd = eval(isbn1) + eval(isbn3) + eval(isbn5) + eval(isbn7) + eval(isbn9) + eval(isbn11); //偶数桁を足す var even = eval(isbn2) + eval(isbn4) + eval(isbn6) + eval(isbn8) + eval(isbn10) + eval(isbn12); var digitval = odd + (even * 3);//偶数桁に3かけて奇数桁との合計 digitval = digitval.toString(); digitval = digitval.substr(-1,1);//1の位を取り出す digitval = 10 - digitval;//10から1の位を引く if (digitval == 10) {//10なのでチェックデジットは0 digitval = '0'; } var digit = isbnw.charAt(12);//13桁目 var MSGCHK = "CHECK start"; var MSGOK = "ISBN is OK"; var MSGFAIL = "ISBN is failed"; 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'){//12桁であればdigitをくっつけるだけ isbnval = isbnhead + isbno + digitval; }else{//13桁であれば12桁だけ抜いてdigitをくっつけるだけ isbno = isbno.substr(0,9); isbnval = isbnhead + isbno + digitval; } }else if(isbnomatch == '3'){//-が3つの場合 isbno = isbno.substr(0,11);//-込みで12桁抜く isbnval = isbnhead + '-' + isbno + '-' + digitval;//-とdigitをくっつける }else if(isbnomatch == '2'){//-が2つの場合 isbnval = isbnhead + '-' + isbno + '-' + digitval;//-とdigitをくっつける } document.isbn.isbnval.value = isbnval; }