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


Posted in Javascript onJanuary 08, 2012

算法根源:
大致是这样车辆识别代码的第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 相关文章推荐
javascript 面向对象编程 万物皆对象
Sep 17 Javascript
Jquery post传递数组方法实现思路及代码
Apr 28 Javascript
cookie 最近浏览记录(中文escape转码)具体实现
Jun 08 Javascript
javascript实现类似百度分享功能的方法
Jul 27 Javascript
jquery判断复选框是否被选中的方法
Oct 16 Javascript
值得分享的轻量级Bootstrap Table表格插件
May 30 Javascript
jQuery插件dataTables添加序号列的方法
Jul 06 Javascript
详解如何在vue中使用sass
Jun 21 Javascript
vue 实现 tomato timer(蕃茄钟)实例讲解
Jul 24 Javascript
react学习笔记之state以及setState的使用
Dec 07 Javascript
JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例
Sep 17 Javascript
解决vue elementUI中table里数字、字母、中文混合排序问题
Jan 07 Javascript
人人网javascript面试题 可以提前实现下
Jan 05 #Javascript
javascript是怎么继承的介绍
Jan 05 #Javascript
js 链式延迟执行DOME
Jan 04 #Javascript
常见效果实现之返回顶部(结合淡入、淡出、减速滚动)
Jan 04 #Javascript
Textarea与懒惰渲染实现代码
Jan 04 #Javascript
js中有关IE版本检测
Jan 04 #Javascript
国外大牛IE版本检测!现在IE都到9了,IE检测代码
Jan 04 #Javascript
You might like
基于PHP读取csv文件内容的详解
2013/06/18 PHP
PHP将HTML转换成文本的实现代码
2015/01/21 PHP
通过php修改xml文档内容的方法
2015/01/23 PHP
php中stdClass的用法分析
2015/02/27 PHP
举例讲解PHP面对对象编程的多态
2015/08/12 PHP
Laravel 5.3 学习笔记之 错误&amp;日志
2016/08/28 PHP
php DES加密算法实例分析
2019/09/18 PHP
Nigma vs Alliance BO5 第四场2.14
2021/03/10 DOTA
javascript 模拟点击广告
2010/01/02 Javascript
JSON 学习之JSON in JavaScript详细使用说明
2010/02/23 Javascript
Vue.js快速入门教程
2016/09/07 Javascript
微信小程序 input输入及动态设置按钮的实现
2017/10/27 Javascript
JS实现左边列表移到到右边列表功能
2018/03/28 Javascript
jQuery实现网页拼图游戏
2020/04/22 jQuery
js中的reduce()函数讲解
2019/01/18 Javascript
如何在Node和浏览器控制台中打印彩色文字
2020/01/09 Javascript
JavaScript的一些小技巧分享
2021/01/06 Javascript
python获取豆瓣电影简介代码分享
2014/01/16 Python
Python中bisect的用法
2014/09/23 Python
python计算一个序列的平均值的方法
2015/07/11 Python
Python实现批量执行同目录下的py文件方法
2019/01/11 Python
python日志logging模块使用方法分析
2019/05/23 Python
python3.x 生成3维随机数组实例
2019/11/28 Python
python 实现简易的记事本
2020/11/30 Python
你正在寻找的CSS3 动画技术
2011/07/27 HTML / CSS
倩碧美国官网:Clinique美国
2016/07/20 全球购物
德国奢侈品网上商城:Mytheresa
2016/08/24 全球购物
服装创业计划书范文
2014/02/05 职场文书
办公室综合文员岗位职责范本
2014/02/13 职场文书
副总经理岗位职责
2015/02/02 职场文书
中学生社会实践教育活动总结
2015/05/06 职场文书
2015年党务公开工作总结
2015/05/19 职场文书
学生病假条怎么写
2015/08/17 职场文书
2016简单的租房合同范本
2016/03/18 职场文书
多表查询、事务、DCL
2021/04/05 MySQL
postgresql 删除重复数据案例详解
2021/08/02 PostgreSQL