@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. 如何破解无线路由器密码,如何破解WEP密码,破解无线路由器
  2. 4、MySQL设置事务自动提交(开启和关闭)
  3. JAVA面试题(part2)--位运算符
  4. 谷歌翻译api_翻译:TensorFlow on Android APP 示例
  5. 【PAT甲级最新题解】PAT甲级2020.7月春季考试满分题解(附代码)
  6. XposedNoRebootModuleSample 不需要频繁重启调试的Xposed 模块源码例子
  7. Wirkshark表达式
  8. 写给程序员和UI--Android的切图标准
  9. CentOS7搭建本地yum源之http服务
  10. 基于FPGA的三人表决器设计
  11. 汉王考勤系统服务器IP,汉王人脸识别考勤客户端使用说明
  12. MySQL数据库安装手册
  13. 基于SpringBoot+Vue开发的物流仓储管理系统源码
  14. 姓名国别分类代码:PyTorch深度学习实践 - Lecture_13_RNN Classifier
  15. 问题解决:Deepin-TIM版本太低无法登录
  16. html里表格做斜线表头,word表格斜线_Word2010怎么绘制斜线表头-太平洋IT百科
  17. 计算机桌面移动如何解决,【电脑小知识】桌面布局被锁定,图标不能随意移动了怎么办?...
  18. <<算法很美>>——(七)——DFS典题(一):水洼数目
  19. 解决scipy>1.3版本中没有imresize的问题
  20. Latex error: file ‘xxx.sty‘ not found

热门文章

  1. 无线网卡代理服务器连接失败怎么办,电脑用无线网卡连不上网的解决方法
  2. python大数据书籍推荐-清华大学出版社-图书详情-《从零开始学Python大数据与量化交易》...
  3. java singleresult方法_Java TaskQuery.singleResult方法代碼示例
  4. 热敏打印机的工作原理
  5. 科普:什么是CPU?CPU和芯片关系?CPU怎么做的?CPU有什么用?不同CPU有什么区别?我们怎么选CPU?(待补充完整)
  6. 关于mysql中日期后面多一个 .0
  7. 清华大学计算机科学系王瑀屏,清华大学材料科学与工程系
  8. Android实现推送PushService通知Notification
  9. 一代、二代、三代测序技术原理与比较
  10. com.thoughtworks.xstream.InitializationException 打包时偶尔就会报错