组织机构代码验证规则:

组织机构代码是每一个机关、社会团体、企事业单位在全国范围内唯一的、始终不变的法定代码标识。 
最新使用的组织机构代码在1997年颁布实施,由8位数字(或大写拉丁字母)本体代码和1位数字(或大写拉丁字母)校验码组成。本体代码采用系列(即分区段)顺序编码方法。校验码按下列公式计算: 

C9 = 11 - MOD ( ∑Ci * Wi ,11) … (2) 
i=1 
其中:MOD —— 表示求余函数; 
i —— 表示代码字符从左到右位置序号; 
Ci —— 表示第i位置上的代码字符的值,采用附录A“代码字符集”所列字符; 
C9 —— 表示校验码; 
Wi —— 表示第i位置上的加权因子,其数值如下表: 
i 1 2 3 4 5 6 7 8 
Wi 3 7 9 10 5 8 4 2 
当MOD函数值为1(即 C9 = 10)时,校验码用字母X表示。

JavaScrip版:

function isValidEntpCode(code, has) {
    var ws = [3, 7, 9, 10, 5, 8, 4, 2];
    var str = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    var reg = /^([0-9A-Z]){8}$/;
    if (!reg.test(C1_8)) {
        return false;
    }
    var sum = 0;
    for (var i = 0; i < 8; i++) {
        sum += str.indexOf(C1_8.charAt(i)) * ws[i];
    }
    var C9 = 11 - (sum % 11);
    if (C9 == 11) {
        return '0';
    } else if (C9 == 10) {
        return 'X'
    } else {
        return C9
    }
}
document.writeln(isValidEntpCode("E0000000-X"));
document.writeln(isValidEntpCode("790E3765-0"));
document.writeln(isValidEntpCode("79013765-X"));
document.writeln(isValidEntpCode("78305975-3"));

Java版

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class ValidateUtils {

protected static final Logger logger = LoggerFactory.getLogger(ValidateUtils.class);

/**
     * 验证企业代码是否正确
     *
     * @param code 企业组织机构代码
     * @return
     */
    public static final boolean isValidEntpCode(String code) {
        int[] ws = { 3, 7, 9, 10, 5, 8, 4, 2 };
        String str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        String regex = "^([0-9A-Z]){8}-[0-9|X]$";

if (!code.matches(regex)) {
            return false;
        }
        int sum = 0;
        for (int i = 0; i < 8; i++) {
            sum += str.indexOf(String.valueOf(code.charAt(i))) * ws[i];
        }
        logger.info("sum is {}", sum);
        logger.info("sum % 11 is {}", sum % 11);

int c9 = 11 - (sum % 11);

String sc9 = String.valueOf(c9);
        if (11 == c9) {
            sc9 = "0";
        } else if (10 == c9) {
            sc9 = "X";
        }
        logger.info("sc9 is {}", sc9);
        return sc9.equals(String.valueOf(code.charAt(9)));
    }
}

oc版:

+ (BOOL) isValidateEntpCode:(NSString *)code {
    BOOL result = NO;
    NSArray *ws = @[@"3",@"7",@"9",@"10",@"5",@"8",@"4",@"2"];
    NSArray *str = @[@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",
                     @"9",@"A",@"B",@"C",@"D",@"E",@"F",@"G",@"H",@"I",
                     @"J",@"K",@"L",@"M",@"N",@"O",@"P",@"Q",@"R",@"S",@"T",@"U",@"V",@"W",@"X",@"Y",@"Z"];
    NSString *regex = @"^([0-9A-Z]){8}-[0-9|X]$";
    NSPredicate * pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
    if (![pred evaluateWithObject:code]) {
        return result = NO;
    }
    
    int sum = 0;
    for (int i = 0; i < 8; i++) {
        NSString *temp = [code substringWithRange:NSMakeRange(i,1)];
        NSUInteger index = [str indexOfObject:temp];
        sum += index * [ws[i] intValue];
        
    }

int c9 = 11 - (sum % 11);
    NSString *sc9 = [NSString stringWithFormat:@"%d",c9];
    if (11 == c9) {
        sc9 = @"0";
    } else if (10 == c9){
        sc9 = @"X";
    }
    NSString *lastA = [code substringFromIndex:([code length]-1)];
    return [sc9 isEqualToString:lastA];
}

校验组织机构代码 合法性相关推荐

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

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

  2. 校验全国组织机构代码是否合法

    根据网络整理,经过实际应用. package com.brofe.util; import java.util.HashMap;import java.util.Map;import java.uti ...

  3. Python实现统一社会信用代码合法性校验

    Python实现统一社会信用代码合法性校验 1 统一代码的构成 1.1 结构 ​ 统一代码由十八位的阿拉伯数字或大写英文字母(不使用I.O.Z.S.V)组成,包括第1位登记管理部门代码.第2位机构类别 ...

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

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

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

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

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

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

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

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

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

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

  9. python与shell校验IP地址合法性

    python校验IP地址合法性 执行效果: python代码: [root@yang python]# vi check_ip.py #!/usr/bin/python import os,sys d ...

最新文章

  1. Gnome Subtitles 0.0.1
  2. Diango博客--12.开发 Django 博客文章阅读量统计功能
  3. maven的仓库、生命周期与插件
  4. Java常量池学习总结-1
  5. 再见!RESTful...
  6. Avoiding GREEDYDATA for logstash'grok
  7. C++虚函数(多态性)
  8. 双眼融合训练一个月_最好的双眼视功能训练方法
  9. 高颜值免费在线绘图BIC/ImageGP视频介绍
  10. [腾讯社区开放平台]介绍开放授权协议-OAuth
  11. 古风一棵桃花树简笔画_唯美意境桃花古风句子
  12. 什么样的员工容易被提拔为管理者,他们有哪些共同特质?
  13. 从零玩转HTML5+CSS3项目实战-跟着李南江学编程
  14. VScode远程调试remote development
  15. #今日论文推荐#1小时学会走路,10分钟学会翻身,世界模型让新生机器狗掌握多项技能
  16. java椭圆写字距离_编java代码求椭圆和长方形的面积和周长.
  17. libnet编译linux,求助,libnet函数库的应用问题?出现 undefined reference to `libnet_init'错误。...
  18. 光电检测技术(第一二章未完)
  19. flash元件做运行时共享的问题
  20. 人工智能能否代替人类?

热门文章

  1. CVE-2020-1472NetLogon权限提升漏洞
  2. win10 电脑找不到WIFI,手机却能连上,问题解决
  3. 第1章 当我们谈论算法的时候,我们在谈论什么?
  4. scons 手册_SCons用户手册 | 学步园
  5. undo歌词中文音译_UNDO歌词及翻译
  6. 世界上读书最多的国家(以色列人均64本)
  7. LeetCode 1052 爱生气的书店老板 HERODING的LeetCode之路
  8. Ubuntu操作系统漏洞扫描和分析
  9. ESP8266+OLED屏实现天气预报+温度显示+NTP时间同步6屏带中文显示版本迭代持续更新
  10. QGroundControl连接数传(3DR)失败