JAVASCRIPT车架号识别/验证函数代码 汽车车架号验证程序

 更新时间:2012年01月08日 22:37:20   作者:  
偶然中在CSDN里找到C#版的验证程序,因此改编了一版JS版本,相信会对大家有用
算法根源:
大致是这样车辆识别代码的第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>

相关文章

  • JavaScript中forEach和map的使用场景

    JavaScript中forEach和map的使用场景

    本文JavaScript中forEach和map的使用场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • js数字滑动时钟的简单实现(示例讲解)

    js数字滑动时钟的简单实现(示例讲解)

    下面小编就为大家带来一篇js数字滑动时钟的简单实现(示例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • TypeScript 泛型重载函数的使用方式

    TypeScript 泛型重载函数的使用方式

    这篇文章主要介绍了TypeScript 泛型重载函数的使用方式,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • PixiJS学习之Sprite类的使用详解

    PixiJS学习之Sprite类的使用详解

    Sprite 直译为 “精灵”,是游戏开发中常见的术语,就是将一个角色的多个动作放到一个图片里,通过裁剪局部区域得到当前的角色状态图。本文主要介绍了PixiJS中Sprite类的使用,需要的可以参考一下
    2023-02-02
  • Javascript查看大图功能代码实现

    Javascript查看大图功能代码实现

    这篇文章主要介绍了Javascript查看大图功能代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • JavaScript实现Java中Map容器的方法

    JavaScript实现Java中Map容器的方法

    这篇文章主要介绍了JavaScript实现Java中Map容器的方法,结合实例形式分析了JavaScript实现Java中Map容器的原理与相关实现技巧,需要的朋友可以参考下
    2016-10-10
  • uniapp路由uni-simple-router实例详解

    uniapp路由uni-simple-router实例详解

    uni-simple-router专为uniapp打造的路由器,和uniapp深度集成,这篇文章主要给大家介绍了关于uniapp路由uni-simple-router的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • JavaScript图像延迟加载库Echo.js

    JavaScript图像延迟加载库Echo.js

    Echo 是一个独立的 JavaScript 懒加载图像的工具,快速、体积小(不足1k)和使用 HTML5 的 data- 属性,通过本文给大家介绍JavaScript图像延迟加载库Echo.js ,感兴趣的朋友一起学习吧
    2016-04-04
  • JavaScript 学习小结(适合新手参考)

    JavaScript 学习小结(适合新手参考)

    JavaScript常量又称字面常量,是固化在程序代码中的信息。变量的主要作用是存取数据,提供一个存取信息的容器。
    2009-07-07
  • Layui实现带查询条件的分页

    Layui实现带查询条件的分页

    这篇文章主要为大家详细介绍了Layui实现带查询条件的分页,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07

最新评论