EANコード用チェックデジット

EANコード(JANコード)は13桁ですが、最後の桁はチェックデジットです。
チェックデジットの作り方は色々ありますが、EANコードの場合は「モジュラス10ウェイト3」と言われる方法を使っています。

  1. 12桁について、右から数えて奇数番目の数は1倍、偶数番目の数は3倍として合計します。
  2. 合計を10で割ったあまりを求めます。
  3. あまりが0のときは「0」、0以外のときは「10-あまり」がチェックデジットとなります。

JavaScriptでサンプルを作ってみました。

function checkdigit(t) {
  //EANコード用のチェックデジット(モジュラス10ウェイト3)
  var s = 0, i;
  for (i = 0; i < t.length; i += 1) {
    s += t.substr(t.length - i - 1, 1) * (i % 2 === 0 ? 3 : 1);
  }
  return s % 10 === 0 ? 0 : 10 - s % 10;
}

コメント

  1. […] 機械で縞模様をスキャンして13桁の数列に変換しますが、上のパターンに合致しない場合は、エラーになります。 また数列の最後の桁はチェックデジットになっていて、これが合致しない場合もエラーになります。 チェックデジットというのは、12桁をある規則により1桁の数に変換する方法で、EANコードの場合、「モジュラス10のウェイト3」という手法を使っているそうです。 関連投稿 […]

  2. […] 機械で縞模様をスキャンして13桁の数列に変換しますが、上のパターンに合致しない場合は、エラーになります。 また数列の最後の桁はチェックデジットになっていて、これが合致しない場合もエラーになります。 チェックデジットというのは、12桁をある規則により1桁の数に変換する方法で、EANコードの場合、「モジュラス10のウェイト3」という手法を使っているそうです。 関連記事 […]

タイトルとURLをコピーしました