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 */
//获取校验位function CheckBarCode(s) { var a = 0,b = 0,c = 0,d = 0,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;}//生成随机13位条码function createBarcode(){ var str='69'; for(var i=0;i<10;i++){ str+=Math.floor(Math.random()*10); } var checkcode=CheckBarCode(str); return str+checkcode;}alert("code:" + createBarcode());
php获取校验位的方法,直接把js函数改装一下就成php的了
api地址:http://tool.bitefu.net/jisuan/jiaoyan.php?code=2211114000604