根据网络整理,经过实际应用。



package com.brofe.util;

import java.util.HashMap;import java.util.Map;import java.util.regex.Matcher;import java.util.regex.Pattern;

import org.apache.commons.lang.StringUtils;import org.apache.log4j.Logger;

/** * 校验全国组织机构代码是否合法 *  * <p> *     本标准根据国家技术监督局 1997年国家标准制修订项目补充计划,对 GB/T 11714—1995《全国组织机构代码编制规则》进行修订。 * </p> *  * <p> *    使用方法: OrgCodeValidation.validate("全国组织机构代码"); * </p> *  * @author brofe * @since Jun 8, 2009 * @version 1.0 */public class OrgCodeValidation {

  protected static Logger log = Logger.getLogger(OrgCodeValidation.class);

   private static final String[] codeNo = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B",         "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "O", "P", "Q", "R", "S",           "T", "U", "V", "W", "X", "Y", "Z" };

  private static final String[] staVal = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11",           "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24",           "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35" };

   private OrgCodeValidation () {}

 /**    * 校验组织机构代码    *     * @param orgCode 待校验的组织机构代码  * @return true 表示合法,false 表示不合法   */   public static boolean validate(String orgCode) {      if (StringUtils.isEmpty(orgCode)) {           log.error("组织机构代码不能为空", new NullPointerException());            return false;     }

       Pattern pat = Pattern.compile("^[0-9A-Z]{8}-[0-9X]$");     Matcher matcher = pat.matcher(orgCode);      if (!matcher.matches()) {         return false;     }

       Map map = new HashMap();     for (int i = 0; i < codeNo.length; i++) {           map.put(codeNo[i], staVal[i]);        }     final int[] wi = { 3, 7, 9, 10, 5, 8, 4, 2 };        String[] all = orgCode.split("-");     final char[] values = all[0].toCharArray();      int parity = 0;      for (int i = 0; i < values.length; i++) {           final String val = Character.toString(values[i]);            parity += wi[i] * Integer.parseInt(map.get(val).toString());        }     String cheak = (11 - parity % 11) == 10 ? "X" : Integer.toString((11 - parity % 11));

      return cheak.equals(all[1]);  }

   public static void main(String[] args) {      // 00251807-3 00251808-1      System.out.println(OrgCodeValidation.validate("00251805-7")); // 00251805-7 true        System.out.println(OrgCodeValidation.validate("00251809-X")); // 00251809-X true    }}

校验全国组织机构代码是否合法相关推荐

  1. 计算全国组织机构代码的校验码(C++)

    输入 全国组织机构代码的本体代码,由8位数字或大写拉丁字母组成. 输出 全国组织机构代码,本体代码后加连字符和校验码. C++实现代码 #include <iostream>int mai ...

  2. Python 组织机构代码证校验

    全国组织机构代码由八位数字(或大写拉丁字母)本体代码和一位数字(或大写拉丁字母)校验码组成. 校验码按照以下公式计算: C9=11−MOD(∑i=18Ci×Wi,11) C_9=11-MOD(\sum ...

  3. 组织机构代码和统一社会信用代码校验规则以及java校验工具类

    组织机构代码 编码规则编辑 1.全国组织机构代码由八位数字(或大写拉丁字母)本体代码和一位数字(或大写拉丁字母)校验码组成. 本体代码采用系列(即分区段)顺序编码方法. 校验码按照以下公式计算: C9 ...

  4. hive自定义函数实现组织机构代码、统一社会信用代码校验

    一.根据中华人民共和国国家标准全国组织机构代码(9位)编制规则实现规则校验 1.组织机构代码编码规则 1.1组织机构代码的组成 全国组织机构代码由八位数字(或大写拉丁字母)本体代码和一位数字(或大写拉 ...

  5. js验证组织机构代码

    1.全国组织机构代码由八位数字(或大写拉丁字母)本体代码和一位数字(或大写拉丁字母)校验码组成. 本体代码采用系列(即分区段)顺序编码方法.校验码按照以下公式计算: C9=11-MOD(∑Ci(i=1 ...

  6. 校验组织机构代码 合法性

    组织机构代码验证规则: 组织机构代码是每一个机关.社会团体.企事业单位在全国范围内唯一的.始终不变的法定代码标识.  最新使用的组织机构代码在1997年颁布实施,由8位数字(或大写拉丁字母)本体代码和 ...

  7. java 代码实现身份证合法性校验(全国所有地方)

    很多地方可能都会用到对身份证要进行判断校验的功能,这个是之前在网上看到的,具体的网址都忘了,现在项目完成了,有时间把其整理下,方便自己和大家日后使用!(直接复制粘贴即可) package org.as ...

  8. 组织机构代码证号码校验

    (1)html部分 <div class="test4 txt-com"><input id="StoreAddTxt17" name=&qu ...

  9. python结合正则表达式及校验码生成算法校验:电话号码、营业执照、组织机构代码证、税务登记证、统一社会信用代码证、非盈利性企业登记证号码的函数

    #!/usr/bin/env python3 import re from datetime import datetimedef check_phone(phone):'''三大运营商和虚拟运营商的 ...

最新文章

  1. Nature news: 未来40年,DNA测序将走向何方?
  2. 网站优化工作关键——稳定排名!
  3. vue 表格内容跳转页面_Vue项目实战系列文章(一)项目预热
  4. Github 王炸功能!Copilot 替代打工人编程?
  5. 国内最大.NET平台重金招募中 你竟然还不知道?
  6. Linux 服务器远程控制三剑客Telnet、SSH 和 VNC 之 VNC
  7. efcore调用函数_EF Core 3.1 执行sql语句的几种方法
  8. 关于不使用漫游配置文件解决方案保持登陆域后保持原来的配置文件不变
  9. python要记多少个单词是合理的_词汇量少的人每天背多少单词合适?
  10. 小米手机拦截返回音设置不了_小米手机用户注意了!这几个超好用的功能你没用过就太可惜了...
  11. 2015年热恋的肉肉们
  12. 北京新文化运动纪念馆展出中国古代建筑经典模型
  13. 全球数字电视标准制式
  14. SJT生成排列(清华OJ)
  15. Android——横幅通知
  16. Java实现 蓝桥杯 算法训练 Beaver's Calculator
  17. 四足机器人发展史及机器人盘点
  18. ffmpeg视频剪切与拼接
  19. 武汉大学计算机学院研究生360,武汉大学计算机考研科目有哪些
  20. D-Link的DIR-655无线网络firmware升级(一)

热门文章

  1. 字符串反码 python_字符串反码
  2. Oracle8i与MS SQL SERVER2000之比较
  3. 生成HTTPS证书及使用
  4. java 泰文_常用泰语100句
  5. 【Linux多线程】
  6. 晶体三极管及其放大电路之共集电极电路
  7. 企业使用OA办公软件后,如何提高它的利用率?
  8. (WWDC) 拥抱算法 (Embracing Algorithms) 上
  9. 游戏计算机的摘要,求助:计算机论文摘要翻译
  10. 2018CCPC湘潭邀请赛总结