13桁のJANコードからチェックデジット(C/D)を計算して入力ミスを指摘します。12桁の場合は、C/Dを計算して表示します。
8桁の短縮タイプにも対応し、7桁の場合はC/Dを計算して表示します。
<script language="JavaScript" type="text/JavaScript"> function cd_check() { //コード取得 s = document.form1.tf01.value; //短縮タイプの場合 if (s.length == 8) s = "00000" + s; else if (s.length == 7) s = "00000" + s; //処理分岐 if (s.length == 13) set = 1; else if (s.length == 12) set = 2; else set = 0; if (set > 0) { //C/D取得 cd = s.substr(s.length-1,1); //初期値 m = 0; t1 = 0; t2 = 0; //桁毎の加算処理 for (i=0;i<12;i++) { if (m == 0) { //奇数桁6つを加算 t1 = t1 + parseInt(s.substr(i,1)); m = 1; } else { //偶数桁6つを加算 t2 = t2 + parseInt(s.substr(i,1)); m = 0; } } //奇数桁と偶数桁の3倍値を加算 m = t1 + t2 * 3; //mを文字列化 s = "" + m; //加算値の1桁目を10から引く m = 10 - parseInt(s.substr(s.length-1,1)); if (m == 10) {m = 0;} //表示 if (set == 1) { if (cd == m) alert("C/Dチェック合格(C/D == " + m +")"); else alert("C/Dチェック不合格(" + cd + "<>" + m +")"); } else { alert("C/D == " + m); } } else { //表示 alert("JANコードは12桁(C/Dなし)または13桁(C/Dあり)で入力してください。"); } } </script>