PHP版本:
<pre><?php
print_r(ems('EK702111856CS',10));
function ems($code,$num){
if(!preg_match('/[a-z-A-Z]{2}[0-9]{9}[a-z-A-Z]{2}/',$code)) die ('起始值验证失败!不是有效的EMS运单号!');
$start=(float)substr($code,2,8);
for($i=0;$i<$num;$i++){
$a=(string)($start+$i);
$b=(11-(($a[0]*8+$a[1]*6+$a[2]*4+$a[3]*2+$a[4]*3+$a[5]*5+$a[6]*9+$a[7]*7)%11));
$b=$b<10?$b:(($b-10)*5);
$arr[]=$code[0].$code[1].$a.$b.$code[11].$code[12];
}
return $arr;
}
?>
ja<script type="text/javascript">
alert(ems('EK702111856CS',10));
function ems(code,num){
var a,b,arr=[],start=parseFloat(code.substr(2,8));
for(var i=0;i<num;i++){
a=String(start+i);
b=(11-((a[0]*8+a[1]*6+a[2]*4+a[3]*2+a[4]*3+a[5]*5+a[6]*9+a[7]*7)%11));
b=b<10?b:((b-10)*5);
arr.push(code[0]+code[1]+a+b+code[11]+code[12]);
}
return arr;
}
</script>