EANコード(JANコード)は13桁ですが、最後の桁はチェックデジットです。
チェックデジットの作り方は色々ありますが、EANコードの場合は「モジュラス10ウェイト3」と言われる方法を使っています。
- 12桁について、右から数えて奇数番目の数は1倍、偶数番目の数は3倍として合計します。
- 合計を10で割ったあまりを求めます。
- あまりが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;
}
//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;
}
コメント
[…] 機械で縞模様をスキャンして13桁の数列に変換しますが、上のパターンに合致しない場合は、エラーになります。 また数列の最後の桁はチェックデジットになっていて、これが合致しない場合もエラーになります。 チェックデジットというのは、12桁をある規則により1桁の数に変換する方法で、EANコードの場合、「モジュラス10のウェイト3」という手法を使っているそうです。 関連投稿 […]
[…] 機械で縞模様をスキャンして13桁の数列に変換しますが、上のパターンに合致しない場合は、エラーになります。 また数列の最後の桁はチェックデジットになっていて、これが合致しない場合もエラーになります。 チェックデジットというのは、12桁をある規則により1桁の数に変換する方法で、EANコードの場合、「モジュラス10のウェイト3」という手法を使っているそうです。 関連記事 […]