EAN-13 百科
European Article Number (欧洲物品编码的缩写),其中共计13位代码的EAN-13是比较通用的一般终端产品的条形码协议和标准,主要应用于超级市场和其它零售业,因此这种是我们比较常见的,随便拿起身边的一个从超市买来的商品都可以从包装上看得到。
编码位13位,其中前3位是国家和地区代码(我国大陆地区为690-699),中间5-6位是厂商识别码(早期是5位,现在有些新申请的是6位),其后4位(6位的厂商识别码预留的是为3位)是产品编码,由厂商自行确定。最后一位是自动生成的校验码。
如果条码是自行生产则前12位可以自行随机或按自行规则生产,但是最后一位位校验码,必须统计算公式算出来。
校验码生产规则
校验码是由前12位数按一定公式计算而得出的.其计算公式见下表.
| 步骤 | 举例说明 |
|---|---|
| ① 自左向右 | 如:210213400150X (x为校验码) |
| ② 计算偶数位上的数字之和 | 1+2+3+0+1+0 = 7 |
| ③ 偶数位之和 * 3 | 7 * 3 = 21 |
| ④ 计算奇数位上的数字之和 | 2+0+1+4+0+5 = 12 |
| ⑤ 偶数位之和 * 3 加奇数位之和 | 21 + 12 = 33 |
| ⑥ 10 - ⑤ 的最后一位 (如果为10则校验位为0) | 10 - 3 = 7 |
最后校验位为 7
2102134001507
EAN-13编码的校验位计算方法,以JS为例
function _EAN13(CodeString) {
if (CodeString == "") return "";
if (CodeString.length > 12) CodeString = CodeString.substring(0, 12);
let Code = CodeString.split("");
var A = 0;
var B = 0;
for (let i = 0; i < Code.length; i++) {
if (i % 2 == 1) {
A += parseInt(Code[i]);
}
else {
B += parseInt(Code[i]);
}
}
var C1 = B;
var C2 = A * 3;
var CC = (C1 + C2) % 10;
var CheckCode = (10 - CC) % 10;
return CodeString + CheckCode;
}