用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 " ));

转载于:https://www.cnblogs.com/case/archive/2011/06/13/2079379.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值