【vin 国标正则校验】

规则一

复制代码
var checkVIN=function(VIN){
    if(typeof(VIN)!='string') return false;
    if(VIN.length!=17) return false;
    VIN=VIN.toUpperCase();
    RE==/^[A-HJ-NPR-Z\d]{8}[X\d][A-HJ-NPR-Z\d]{3}\d{5}$/
    if(!RE.test(VIN)) return false;
    let cOT={
        '0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,
        '8':8,'9':9,'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
    };
    let xWT=[8,7,6,5,4,3,2,10,0,9,8,7,6,5,4,3,2]; 
    // 因为第9位权重为0,所以原来是什么字符不影响结果,可以方便后面计算
    let sum=0;
    VINs=VIN.split('');
    for(let i=0;i<17;i++){
        sum=sum + cOT[ VINs[i] ] * xWT[i];
    }
    let cT=['0','1','2','3','4','5','6','7','8','9','X'];
    if( cT[ (sum%11) ] == VINs[8]) return true;
    return false;
}

其他正则

复制代码
    const regx = /^[A-HJ-NPR-Z0-9]{17}$/
    const regx = /^[A-HJ-NPR-Z\d]{17}$/
相关推荐
Jason_zhao_MR14 小时前
米尔RK3506核心板SDK重磅升级,解锁三核A7实时控制新架构
linux·嵌入式硬件·物联网·架构·嵌入式·嵌入式实时数据库
远山无期14 小时前
解决Tailwind任意值滥用:规范化CSS开发体验
前端·css·eslint
用户542778485154014 小时前
Vue 3 中开发高阶组件(HOC)与 Renderless 组件
前端
叮咚侠14 小时前
Ubuntu 24.04.3 LTS 中 vdb 的 UUID 永久挂载没有显示的磁盘的操作步骤
linux·运维·ubuntu·挂载磁盘
幼儿园老大14 小时前
告别代码屎山!UniApp + Vue3 自动化规范:ESLint 9+ 扁平化配置全指南
javascript·vue.js
HIT_Weston14 小时前
67、【Ubuntu】【Hugo】搭建私人博客(一)
前端·ubuntu·hugo
阿里巴啦14 小时前
用React+Three.js 做 3D Web版搭建三维交互场景:模型的可视化摆放与轻量交互
前端·react·three.js·模型可视化·web三维·web三维交互场景
.小墨迹14 小时前
C++学习之std::move 的用法与优缺点分析
linux·开发语言·c++·学习·算法·ubuntu
风华同学14 小时前
【Linux驱动篇】LED驱动开发实验
linux·驱动开发·ubuntu
李斯维14 小时前
安装 WSL 最好的方式
linux·windows