@xdsnet 的回答已经很全面了,先用正则表达式快速检查,再做校验。我这里只是对代码做一个纯粹的技术探讨。

关于 cOT 的生成

手写太累,可以const cOT = (() => {

const entries = [

"0123456789",

" ABCDEFGH",

" JKLMNOPQR",

" STUVWXYZ"

].flatMap(

// Array.from 把字符串拆分成字符数组(主要是手写字符数组太累)

// 根据字符位置生成 entry,比如 ['J', 1]

// 完了进行 flat,把多组数组扁平化

s => Array.from(s).map((c, i) => [c, i])

);

// 从 entires 生成对象,这个对象的键包含了空格、I、O 和 Q

// 如果将上面的 IOQ 替换成空格,这里多的就只有空格

const map = Object.fromEntries(entries);

// 删除多余的键(其实不删也没关系,因为之前已经用正则已将这些字符排除掉了)

return Array.from(" IOQ").reduce((m, c) => (delete m[c], m), map);

})();

这段代码只在初始化的时候执行一次,对效率没啥影响。如果还是想直接定义成常量,将上述代码的执行结果在控制台中用 JSON.stringify(cOT) 输出就是。

关于计算 SUM

效率并不如原生循环,只是把计算过程封装在一句话里。用 IIFE 也可以达到同样的效果。const sum = Array.from(VIN)

.map((c, i) => cOT[c] * xWT[i])

.reduce((s, v) => s + v, 0);

关于 10 => 'X'

直接用数组很直接,关无毛病。

这是个时间换空间的写法(其实对于这点空间,没啥卵用),const vcode = (mod => mod === 10 ? "X" : mod.toString())(sum % 11);

php 正则车架号,js 正则校验车架号VIN相关推荐

  1. php正则换成js正则,php正则替换_php使用正则替换过滤掉js脚本例子

    摘要 腾兴网为您分享:php使用正则替换过滤掉js脚本例子,榛果民宿,掌上书院,夜读小说,学堂里等软件知识,以及中辉期货,车易行违章,孢子,必应壁纸app,鲁证期货,dota26.88,ip摄像头ap ...

  2. php 正则 花括号,JS+正则取得小括号、中括号及花括号内容步骤详解

    这次给大家带来JS+正则取得小括号.中括号及花括号内容步骤详解,JS+正则取得小括号.中括号及花括号内容的注意事项有哪些,下面就是实战案例,一起来看一下. JS 正则表达式 获取小括号 中括号 花括号 ...

  3. Java身份证号脱敏、校验身份证号合法性、根据身份证号获取年龄、根据生日获取年龄

    这里写目录 身份证号编码规则 身份证号脱敏 身份证号合法性校验 根据身份证号获取年龄 根据生日日期获取年龄 根据身份证号获取年龄.生日的Map集合 身份证号编码规则 第一.二位表示省(自治区.直辖市. ...

  4. 校验集装箱号;java校验集装箱号并附解析

    需求 其实这是一道算法题: 先看看集装箱编号的规则说明 一. 标准箱号构成基本概念:采用ISO6346(1995)标准. 标准集装箱箱号由11位编码组成,包括三个部分: 1. 第一部分由4位英文字母组 ...

  5. Python通过区号和校验位校验身份证号是否合法

    源码链接:https://github.com/WindSnowLi/My-python-tools/tree/main/CheckID 个人博客地址:https://www.blog.hiyj.cn ...

  6. html正则半角,JS正则密码校验之:JS正则匹配半角英文符号

    概述 在JS密码重网有剑据些文页的底社按标近新站的不的方校验中常常会遇到密码强度的校验需求,借用一位朋友提问的图,他在工作中遇到的一个比较经典的密码强度校验要和第,.年过事工宗据指数遍互业经搞断果会击 ...

  7. js中关于邮箱号、手机号。。等的正则验证模板

    js正则验证模板 </pre><pre name="code" class="html"> <span style="w ...

  8. JS正则密码校验之:JS正则匹配半角英文符号

    概述 在JS密码校验中常常会遇到密码强度的校验需求,借用一位朋友提问的图,他在工作中遇到的一个比较经典的密码强度校验要求: 这个需求有两个难点,一,是如何使用正则匹配所有半角英文标点符号,二,是如何验 ...

  9. js正则分析案例——以JSON格式校验为例

    js正则分析案例--以JSON格式校验为例 [TOC] 缘起 最近在研究javascript中对各种数据类型与格式的判断,以及各种第三方库提供的字符串处理方法,发现有大量的地方运用了正则,并且有些正则 ...

  10. js正则校验日期格式和时间格式是否正确

    一,前端jsp页面有一文本框输入时间  HH:mm:ss格式的   另一个文本框要求输入yyyymmdd格式的日期        时间: 由于未用到任何时间插件,只能通过js校验输入的时间是否正确,最 ...

最新文章

  1. vector array and normal stanard array
  2. mybatis 处理参数ListString[]
  3. Winform控件扩展
  4. js动态创建样式style
  5. @kafkalistener中id的作用_SSM框架(十一):Spring框架中的IoC(1)
  6. C#WinForm程序异常退出的捕获、继续执行与自动重启
  7. 【解读】Http协议
  8. 【渝粤题库】陕西师范大学201311 刑法学作业
  9. java static final泛型类对象
  10. 解决“ValueError: Stop argument for islice() must be None or an integer: 0 <= x <= sys.maxsize.”
  11. Linux学习笔记(尚硅谷韩顺平老师2021最新Linux教程)万字笔记
  12. spring常用注解的作用
  13. kali安装zmap
  14. c语言自学书籍 新闻,如何学习C语言
  15. 笔记本电脑刚回来没有计算机,刚买笔记本电脑我的笔记本电脑没有光驱,如果重新安装系统,怎么样操 爱问知识人...
  16. iOS播放器开发之MPMoviePlayerController
  17. 夜神模拟器卡在android,夜神安卓模拟器很卡怎么办?模拟器卡顿解决方法分享...
  18. 移动硬盘插到电脑上忽然不显示的解决办法(不一定有用,仅我个人的解决方法)
  19. SpringCloud之利用FTL生成Word报表并下载
  20. [Jquery]天气接口简单使用

热门文章

  1. 163vip邮箱登陆入口,怎么登录163邮箱?
  2. 深度学习之注意力机制(Attention Mechanism)和Seq2Seq
  3. 微信小程序表单必填项设置
  4. Ubuntu系统观看IPV6电视的方法详解
  5. 什么是IPv6,IPv6有什么优势
  6. Shawn邀您共读《WebGL编程指南》| GLSL ES篇
  7. Matlab中图像平移的实现
  8. cd linux 镜像,解开 CDLinux 的iso映像文件
  9. 源支付源码三网免挂带云端协议源码搭建
  10. java 中 枚举 大括号 用法