条码 支持获取校验位"/>
js 生成随机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 */
//获取校验位
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的了
<?php
function CheckBarCode($s) {$length=strlen($s)-1;$a = $b = $c = $d = $e = 0;for ($i = 1; $i <= $length; $i++) {$sc = intval($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;
}
$code=empty($_GET['code'])?'':trim($_GET['code']);
if(empty($code))exit('?code=');
echo $code.' :'.CheckBarCode($code);
?>
api地址:.php?code=2211114000604
更多推荐
js 生成随机13位国际条码 支持获取校验位
发布评论