news 2026/4/25 5:11:39

全国组织机构代码校验规则

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
全国组织机构代码校验规则

支持带横杠 (xxxxxxx-X)/不带横杠 (xxxxxxxxx)两种格式,兼容大小写:

第一种:

/** * 全国组织机构代码校验函数 * @param {string} code - 组织机构代码(支持 xxxxxxxx-X / xxxxxxxxx 格式) * @return {boolean} true=合法,false=非法 */ function checkOrgCode(code) { // 1. 空值校验 if (!code) return false; // 2. 统一转为大写,去除横杠(兼容两种格式) const upperCode = code.toUpperCase().replace(/-/g, ''); // 必须是9位 数字/大写字母 const reg = /^[0-9A-Z]{9}$/; if (!reg.test(upperCode)) return false; // 3. 定义加权因子 + 字符集(0-9,A-Z对应的值) const weight = [3, 7, 9, 10, 5, 8, 4, 2]; // 8位加权因子 const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; // 4. 拆分:前8位本体码,第9位校验码 const body = upperCode.substring(0, 8); // 本体码 const checkCode = upperCode.substring(8, 9); // 输入的校验码 // 5. 计算求和 let sum = 0; for (let i = 0; i < 8; i++) { // 获取字符对应的值 × 加权因子 sum += chars.indexOf(body[i]) * weight[i]; } // 6. 计算标准校验码 let c9 = 11 - (sum % 11); // 处理特殊规则 if (c9 === 10) c9 = 'X'; if (c9 === 11) c9 = '0'; // 7. 最终校验:计算值 == 输入值 return c9.toString() === checkCode; }

仅支持带横杠格式

function checkOrgCodeSimple(code) { if(!code) return false; const reg = /^[0-9A-Z]{8}-[0-9X]$/i; if(!reg.test(code)) return false; const [body, check] = code.toUpperCase().split('-'); const weight = [3,7,9,10,5,8,4,2]; const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; let sum = 0; for(let i=0;i<8;i++) sum += chars.indexOf(body[i]) * weight[i]; let c9 = 11 - sum%11; c9 = c9===10?'X':c9===11?'0':c9+''; return c9 === check; }

测试用例

// 测试合法代码 console.log(checkOrgCode('51100000-2')); // true console.log(checkOrgCode('511000002')); // true(无横杠) console.log(checkOrgCode('D1234567-X')); // true // 测试非法代码 console.log(checkOrgCode('51100000-3')); // false console.log(checkOrgCode('12345678')); // false(长度不足) console.log(checkOrgCode('123456789-0')); // false(格式错误)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 5:09:19

Qwen3-4B-Instruct部署教程:CentOS/Ubuntu双平台防火墙开放7860端口指南

Qwen3-4B-Instruct部署教程&#xff1a;CentOS/Ubuntu双平台防火墙开放7860端口指南 1. 模型简介 Qwen3-4B-Instruct-2507是Qwen3系列的端侧/轻量旗舰模型&#xff0c;具备强大的文本理解和生成能力。该模型原生支持256K token&#xff08;约50万字&#xff09;上下文窗口&am…

作者头像 李华
网站建设 2026/4/25 5:06:58

构建城市生命线:基于WebGIS的跨行业管线三维在线编辑与管理

1. 城市生命线的三维革命&#xff1a;为什么我们需要WebGIS&#xff1f; 想象一下&#xff0c;你正站在城市中心的地下30米处。头顶是错综复杂的电力管线&#xff0c;左侧是直径1.2米的供水主干管&#xff0c;右手边燃气管道与热力管网交织缠绕——这就是每天为城市输送能量的&…

作者头像 李华
网站建设 2026/4/25 5:05:17

软件流程图管理化的过程可视化

软件流程图管理化的过程可视化&#xff1a;提升开发效率的利器 在软件开发过程中&#xff0c;流程图是描述逻辑、梳理流程的重要工具。随着项目复杂度提升&#xff0c;传统的手绘或静态流程图管理方式已难以满足团队协作和高效迭代的需求。软件流程图管理化的过程可视化&#…

作者头像 李华