这段时间,公司进行的项目需要用到一些个人证件和企业证件的校验,参考了一些网上的代码,其实现在很多的规则都已经被大佬们编写出来,并且正常使用.所以在网上搜集了一些资料.经过一些修改,大部分都能直接用了,唯独少了中征码的校验.在此之前,我其实也不知道啥叫中征码.

不过呢,管他是啥,有规则就成.话不多说直接上代码.

先提一嘴校验规则

上图为计算规则以及字母对应的机器码值.

下面上代码:

function checkZZM(value){/** 公司给到我的规则为:* 编码长度应为 16 位;
    * 第 1 到 3 位应为字母或者数字;
   * 第 4-14 位应为数字;
   * 校验位(最后两位)符合校验规则,下公式* (符号打不出来... 就是对前14位值乘以加权因子,最后对97取余再+1)* A=1+MOD(∑Ci x Wi,97)*///先定义正则,前三位为字母或数字, 4-16位为数字,最后两位为校验码var reg = /^[A-Z0-9]{3}[0-9]{4,16}$/;var re = new RegExp(reg);if(!re.test(value)){return false;}//最后两位校验码var code = value.substring(14,16);//前14位序号值var idCode = value.substring(0,14);// 加权因子(固定)var weight_factor = [1,3,5,7,11,2,13,1,1,17,19,97,23,29];var arr = idCode.split("");var len = arr.length;var num = 0;for(var i = 0; i < len; i++){if(arr[i]>="A" && arr[i]<="Z"){//第一次觉得js比java好写.因为java还要转类型转来转去...js多好 直接用就好了arr[i] = enToNumberFun(arr[i])}//计算总和num = num + arr[i] * weight_factor[i];}// 获取余数var resisue = num%97+1;//因为校验位是两位,则如果最后的余数只有一位的话,还要补一个0if(resisue<10){resisue = "0" + resisue;}//校验位和余数相等则校验通过if((resisue == code)){return true;}return false;
}
//将大写字母的值转换为机器处理用代码字符数值(只考虑大写)
function enToNumberFun(val){var b = val.charCodeAt()-55;return b;
}

这样输入一串字符,就可以验证啦.

ASD1234567891473 这样就是一个按上述规则验证为合理的中征码啦.

还写了一份java版的,待会上传,希望有大神看到哪里写的不合理或者可优化的地方,可以联系我,谢谢!!!

好记性不如烂笔头,加油!

JS企业中征码证件校验正则相关推荐

  1. java正则校验企业中征码

    延续上一篇,此则文为java版本校验企业中征码. 校验规则在上一篇中已经提过.所以话不多说,直接上代码. //校验中征码public static boolean checkZZM(String va ...

  2. java测试生成中征码(包含字母、数字)

    public static void main(String[] args) {String val =genSixToSixteenPsw();System.out.println("企业 ...

  3. java测试生成中征码(数字)

    public class Main {public static void main(String[] args) {//企业中征码为 16位 后2位位验证码String checkZZM = che ...

  4. 正则匹配不包含某字符串_如何替换JS字符串中匹配到多处中某一指定节点?

    来源 | https://www.cnblogs.com/class1/p/14273231.html 问题先行,要求搜索关键字,匹配到四处,那我鼠标放在第二处,我想把它变个颜色,该怎么实现呢?截图如 ...

  5. Java+spring boot+mybatis plus+redis实现企业微信扫码登录并同步通讯录到数据库表中

    1.首先需要有企业微信管理员账号,以便在企业微信管理端设置一些参数,参数如下: 企业id.AgentId-应用id.secret-应用的secret.授权登录的回调域名.通讯录同步下的secret. ...

  6. js bind 传参、_Node.js 在企业中的应用实践集锦

    Node.js 在企业中的应用实践 在和一些 Nodeer 童鞋的分享交流过程中,也会听到一些声音:"Node.js 在企业中是如何应用的?有哪些大厂在实践?",于是公众号 &qu ...

  7. AbpVnext 扩展企业微信扫码登录(钉钉登陆、短信登陆、微信登陆等)Vue框架

    目录 1.开始开发准备 1.1 企业微信扫码登陆接入流程 1.2 开启网页授权登陆 1.3 构造独立窗口登陆二维码 1.4 构造内嵌登陆二维码 @@登陆顺序: 1. 发现文档配置 2. 获取token ...

  8. js 正则表达式中的特殊字符

    字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界. -或- 对 ...

  9. 阿里、京东高级算法专家讲述数学在企业中的应用

    学数学到底学什么?如果只是为了刷题和考试,那就大错特错了.学习数学目的是为了掌握数学的思想方法和精神实质,并以此去解决实际问题.学术界和企业界高级专家齐聚一趟,共同探讨数学是如何在企业中得到应用. 为 ...

最新文章

  1. 从源码构建 MyBatis Generator(MBG)
  2. Hive----------Cannot find hadoop installation: $HADOOP_HOME m...
  3. NSString拼接字符串和NSPredicate详解
  4. leetcode 190. 颠倒二进制位(位运算)
  5. 关机时无人照管更新正在运行_了解iOS13.1后,在决定更新
  6. c ajax传递多个参数,c# – 使用jQuery AJAX将字符串数组传递给具有可变参数数量的webmethod...
  7. python api调用 验证码_Python调用创蓝253短信验证码API文档
  8. DevExpress之TreeList绑定复杂数据类型
  9. 简谈触摸板程序的实现(一)
  10. 深信服云桌面linux客户端,深信服桌面云
  11. JVM优化之压缩普通对象指针(CompressedOops)与压缩类指针(CompressedClassPointers)
  12. python利用opencv去除图片logo_用python+OpenCV去除图片水印
  13. 【原创】技术员 Ghost Win 10 X86 企业贺岁版2018
  14. win10护眼模式_Win10系统中你不知道的小秘密,今天解开了,学会了提高工作效率...
  15. android 复制asset文件下文件到手机指定路径,手机根目录
  16. 磁盘检查清理修复命令
  17. catti二级笔译综合能力真题_catti二级笔译综合能力试题精选及答案解析
  18. 免费ssh连接工具FinalShell
  19. 单片机通过MQTT协议连接OneNet实现发布/订阅理论篇
  20. 【网关层】网关层及相关技术栈

热门文章

  1. 如何准备软件工程师的面试[转载]
  2. origin如何绘制多条折线_如何用origin绘制数据变化折线图
  3. idea无法通过debug启动项目
  4. 服务器2012不能复制文件夹,server 2012 dfs无法复制
  5. 跨端开发框架深度横评
  6. 毒瘤~~(第二类斯特林数及其相关公式)
  7. Android 编译 Rom 刷机
  8. create_clock
  9. 创造与魔法282服务器哪天维护,创造与魔法5月28日更新公告 5月28日更新内容[多图]...
  10. Science Bulletin | 中国脑计划——从基础研究到临床应用