PHP版本:
<pre><?php
print_r(sf(755000004593,20));
function sf($code,$num){
if(!is_numeric($code) || strlen($code)!=12) die ('起始值验证失败!不是有效的12位数字!');
for($i=0;$i<$num;$i++){
if($i==0){
$start=(float)substr($code,0,11);
$n12=substr($code,11);
$arr[]=$a=(string)$code;
}else{
$n12=($a[10]==9?(($a[9]==3||$a[9]==6)?(($n12+5)%10):($a[9]==9?($a[8]%2?($a[8]==9?($a[7]%3?(($n12+9)%10):($a[7]==9?($a[6]==0?(($n12+7)%10):($a[6]==9?($a[5]==9?(($a[4]==3||$a[4]==6)?(($n12+8)%10):($a[4]==9?($a[3]%2?(($n12+4)%10):(($n12+5)%10)):(($n12+9)%10))):(($n12+3)%10)):(($n12+6)%10))):($n12%10))):(($n12+2)%10)):(($n12+3)%10)):(($n12+6)%10))):(($n12+9)%10));
$arr[]=$a=($start+$i).$n12;
}
}
return $arr;
}
?>ja<script type="text/javascript">
alert(sf(755000004593,20));
function sf(code,num){
var a,n12,arr = [];
for(i=0;i<num;i++){
if(i==0){
arr.push(a=String(code));
n12=a[11];
start=parseFloat(a.substr(0,11));
}else{
n12=(a[10]==9?((a[9]==3||a[9]==6)?((n12*1+5)%10):(a[9]==9?(a[8]%2?(a[8]==9?(a[7]%3?((n12*1+9)%10):(a[7]==9?(a[6]==0?((n12*1+7)%10):(a[6]==9?(a[5]==9?((a[4]==3||a[4]==6)?((n12*1+8)%10):(a[4]==9?(a[3]%2?((n12*1+4)%10):((n12*1+5)%10)):((n12*1+9)%10))):((n12*1+3)%10)):((n12*1+6)%10))):(n12%10))):((n12*1+2)%10)):((n12*1+3)%10)):((n12*1+6)%10))):((n12*1+9)%10));
arr.push(a=(start+i)+String(n12));
}
}
return arr;
}
</script> 