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代码
Mar 01 Javascript
ExtJS如何设置与获取radio控件的选取状态
Jan 22 Javascript
JavaScript中Function详解
Feb 27 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
Feb 25 Javascript
PassWord输入框代码分享
Jun 07 Javascript
深入理解JavaScript中Ajax
Aug 02 Javascript
更靠谱的H5横竖屏检测方法(js代码)
Sep 13 Javascript
详解Angular.js的$q.defer()服务异步处理
Nov 06 Javascript
深入理解vue2.0路由如何配置问题
Jul 18 Javascript
小程序实现上下移动切换位置
Sep 23 Javascript
vue中实现高德定位功能
Dec 03 Javascript
JavaScript实现图片伪异步上传过程解析
Apr 10 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
玛琪朵 Macchiato
2021/03/03 咖啡文化
PHP中使用gettext来支持多语言的方法
2011/05/02 PHP
PHP使用Face++接口开发微信公众平台人脸识别系统的方法
2015/04/17 PHP
PHP文件生成的图片无法使用CDN缓存的解决方法
2015/06/20 PHP
PHP 根据key 给二维数组分组
2016/12/09 PHP
PHP手机号码及邮箱正则表达式实例解析
2020/07/11 PHP
来自国外的14个图片放大编辑的jQuery插件整理
2010/10/20 Javascript
HTML5附件拖拽上传drop &amp; google.gears实现代码
2011/04/28 Javascript
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
2012/12/19 Javascript
JavaScript设置body高度为浏览器高度的方法
2015/02/09 Javascript
javascript中innerText和innerHTML属性用法实例分析
2015/05/13 Javascript
JavaScript中的跨浏览器事件操作的基本方法整理
2016/05/20 Javascript
跨域请求的完美解决方法(JSONP, CORS)
2016/06/12 Javascript
Javascript实现图片不间断滚动的代码
2016/06/22 Javascript
JavaScript定时器制作弹窗小广告
2017/02/05 Javascript
vue-resource请求实现http登录拦截或者路由拦截的方法
2018/07/11 Javascript
微信小程序实现页面浮动导航
2019/01/28 Javascript
8 个有用的JS技巧(推荐)
2019/07/03 Javascript
vue获取form表单的值示例
2019/10/29 Javascript
Python常见文件操作的函数示例代码
2011/11/15 Python
Python操作sqlite3快速、安全插入数据(防注入)的实例
2014/04/26 Python
python学习之第三方包安装方法(两种方法)
2015/07/30 Python
用Python实现最速下降法求极值的方法
2019/07/10 Python
对python 树状嵌套结构的实现思路详解
2019/08/09 Python
python字典setdefault方法和get方法使用实例
2019/12/25 Python
Python+OpenCV实现将图像转换为二进制格式
2020/01/09 Python
Python命名空间namespace及作用域原理解析
2020/06/05 Python
英国最大的电子产品和家电零售企业:Currys PC World
2016/09/24 全球购物
《望洞庭》教学反思
2014/02/16 职场文书
乡镇民主生活会发言材料
2014/10/20 职场文书
2014年小学工作总结
2014/11/26 职场文书
考试作弊检讨书
2015/01/27 职场文书
九年级数学教学反思
2016/02/17 职场文书
30岁前绝不能错过的10本书
2019/08/08 职场文书
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android
MySQL 外连接语法之 OUTER JOIN
2022/04/09 MySQL