JAVASCRIPT车架号识别/验证函数代码 汽车车架号验证程序 |
本文标签:车架号 算法根源: 大致是这样车辆识别代码的第9位是检验位,检验位可用0—9中任一数字或字母“X”表示 。其它位置的数字和字母代表的意义个厂家含义可能不同,但在VIN码的其他16位字码确定后,按以下方法计算得出第九位的检验位 。 首先将其它16位中的字母按下列关系转换成数字: A=1 B=2 C=3 D=4 E=5 F=6 G=7 H=8 J=1 K=2 L=3 M=4 N=5 P=7 R=9 S=2 T=3 U=4 V=5 W=6 X=7 Y=8 Z=9 每个位置都有个加权数: 位置:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 权数:8 7 6 5 4 3 2 10 * 9 8 7 6 5 4 3 2 最后将检验位之外的16位每一位的加权系数乘以此位的对应值,再将各乘积相加,求得的和除以11,所得的余数就是检验位的数值 。如果余数为10,则检验位为字母“X” 。 JS代码: 复制代码 代码如下: <script type="text/javascript"> var Arr = new Array(); var Brr = new Array(); Arr[A] = 1; Arr[B] = 2; Arr[C] = 3; Arr[D] = 4; Arr[E] = 5; Arr[F] = 6; Arr[G] = 7; Arr[H] = 8; Arr[J] = 1; Arr[K] = 2; Arr[L] = 3; Arr[M] = 4; Arr[N] = 5; Arr[P] = 7; Arr[R] = 9; Arr[S] = 2; Arr[T] = 3; Arr[U] = 4; Arr[V] = 5; Arr[W] = 6; Arr[X] = 7; Arr[Y] = 8; Arr[Z] = 9; Arr[1] = 1; Arr[2] = 2; Arr[3] = 3; Arr[4] = 4; Arr[5] = 5; Arr[6] = 6; Arr[7] = 7; Arr[8] = 8; Arr[9] = 9; Arr[0] = 0; Brr[1]=8; Brr[2]=7; Brr[3]=6; Brr[4]=5; Brr[5]=4; Brr[6]=3; Brr[7]=2; Brr[8]=10; Brr[9]=0; Brr[10]=9; Brr[11]=8; Brr[12]=7; Brr[13]=6; Brr[14]=5; Brr[15]=4; Brr[16]=3; Brr[17]=2; function getCheckCode(sVIN) { var sKYZF="ABCDEFGHJKLMNPRSTUVWXYZ1234567890"; var sJYW =; var bl = false; var blKYZF = false; if (sVIN.length == 17) { var iJQS=0,intTemp=0; ht = Arr; htZM = Brr; try { for (var i = 0; i <sVIN.length; i++) { if (sKYZF.indexOf(sVIN.substr(i, 1)) != -1) { blKYZF = true; iJQS = iJQS + parseInt(ht[sVIN.substr(i, 1)]) * parseInt(htZM[(i + 1)]); } else { blKYZF = false; break; } } if (blKYZF) { intTemp = iJQS%11; if (intTemp == 10) { sJYW = "X"; } else { sJYW = intTemp.toString(); } if (sJYW == sVIN.substr(8, 1)) bl = true; } else { bl = false; } } catch(err) { bl = false; } } return bl; } alert(getCheckCode("WVGAB97PXCD010692")); </script> |