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 相关文章推荐
基于Jquery制作的幻灯片图集效果打包下载
Feb 12 Javascript
jquery实现marquee效果(文字或者图片的水平垂直滚动)
Jan 07 Javascript
浅析JavaScript中的CSS属性及命名规范
Nov 28 Javascript
做好七件事帮你提升jQuery的性能
Feb 06 Javascript
node.js使用require()函数加载模块
Nov 26 Javascript
基于HTML+CSS,jQuery编写的简易计算器后续(添加了键盘监听)
Jan 05 Javascript
JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】
May 10 Javascript
Javascript基础教程之比较null和undefined值
May 16 Javascript
Bootstrap框架结合jQuery仿百度换肤功能实例解析
Sep 17 Javascript
Vue-Router进阶之滚动行为详解
Sep 13 Javascript
VUEJS 2.0 子组件访问/调用父组件的实例
Feb 10 Javascript
vue中实现回车键登录功能
Feb 19 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中使用gettext解决国际化问题的例子(i18n)
2014/06/13 PHP
PHP使用glob函数遍历目录或文件夹的方法
2014/12/16 PHP
PHP遍历数组的三种方法及效率对比分析
2015/02/12 PHP
yii2使用ajax返回json的实现方法
2016/05/14 PHP
php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
2016/07/18 PHP
Laravel给生产环境添加监听事件(SQL日志监听)
2017/06/19 PHP
js的一些常用方法小结
2011/06/29 Javascript
浏览器页面区域大小的js获取方法
2013/09/21 Javascript
基于jQuery+Cookie实现的防止刷新的在线考试倒计时
2015/06/19 Javascript
JS利用cookie记忆当前位置的防刷新导航效果
2015/10/15 Javascript
jquery插件bootstrapValidator表单验证详解
2016/12/15 Javascript
Vue原理剖析 实现双向绑定MVVM
2017/05/03 Javascript
把vue-router和express项目部署到服务器的方法
2018/02/21 Javascript
浅谈JS对象添加getter与setter的5种方法
2018/06/09 Javascript
解决jquery的ajax调取后端数据成功却渲染失败的问题
2018/08/08 jQuery
微信小程序如何获取用户收货地址
2018/11/27 Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
2019/04/17 Javascript
jQuery+ajax实现批量删除功能完整示例
2019/06/06 jQuery
使用Python发送各种形式的邮件的方法汇总
2015/11/09 Python
python3 实现一行输入,空格隔开的示例
2018/11/14 Python
计算机二级python学习教程(3) python语言基本数据类型
2019/05/16 Python
python暴力解压rar加密文件过程详解
2019/07/05 Python
python中使用input()函数获取用户输入值方式
2020/05/03 Python
Python3爬虫RedisDump的安装步骤
2021/02/20 Python
英国领先的鞋类零售商和顶级品牌的官方零售商:Wynsors
2020/02/17 全球购物
C#怎么让一个窗口居中显示?
2015/10/20 面试题
心理学专业毕业生推荐信范文
2013/11/21 职场文书
大学军训通讯稿
2014/01/13 职场文书
优秀导游先进事迹材料
2014/01/25 职场文书
管理专员自荐信
2014/01/26 职场文书
求职信需要的五点内容
2014/02/01 职场文书
行政处罚告知书
2015/07/01 职场文书
小学数学教学反思范文
2016/02/16 职场文书
MongoDB连接数据库并创建数据等使用方法
2021/11/27 MongoDB
浅谈Redis跟MySQL的双写问题解决方案
2022/02/24 Redis
nginx配置指令之server_name的具体使用
2022/08/14 Servers