您的位置:首页 > Web前端 > JavaScript

用Javascript计算EAN-13标准条形码最后一位校验码

2011-06-13 09:29 756 查看
今天一来上班看到同事群里面说起EAN-13标准条形码最后一位校验码的事,于是顺手用js写了这个算法。今日个周一,又是一周新的开始祝大家天天好心情!

/*
EAN-13标准条形码最后一位校验码的计算步骤如下:
a、从代码位置序号2开始,所有偶数位的数字代码求和。
b、将步骤a的和乘以3。
c、从代码位置序号3开始,所有奇数位的数字代码求和。
d、将步骤b与步骤c的结果相加。
e、用大于或等于步骤d所得结果且为10最小整数倍的数减去步骤d所得结果,其差即为所求校验码的值。
解释: EAN-13标准条形码代码位置从右到左序号13   12   11   10   9   8   7   6   5   4   3   2   1
作者:网帆
创建时间:2011-06-13
*/

function isBarCode(s) {
var reg = new RegExp(/^[0-9]{12}$/);
if (reg.exec(s.substring(0, 12)))
return true;
else
return false;
}

function CheckBarCode(s) {
if (!isBarCode(s)) {
return "验证条形码前12位出错!";
}
var a = 0;
var b = 0;
var c = 0;
var d = 0;
var e = 0;
for (var i = 1; i <= 12; i++) {
var sc = parseInt(s[i - 1]);
if (i <= 12 && i % 2 == 0) {
a += sc;
}
else if (i <= 11 && i % 2 == 1) {
b += sc;
}
}

c = a * 3;
d = b + c;
if (d % 10 == 0)
e = d - d;
else
e = d + (10 - d % 10) - d;
return e;
}

alert("校验码是:" + CheckBarCode("693721090010X"));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: