用Javascript计算EAN-13标准条形码最后一位校验码
今天一来上班看到同事群里面说起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"));
补充:web前端 , JavaScript ,