首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

社会信用代码 js 校验规则

社会信用代码(Social Credit Code)是中国用于标识法人和其他组织的唯一编码系统。它由18位字符组成,包括数字和大写字母,具有特定的结构和校验规则。下面是社会信用代码的JS校验规则及相关信息:

基础概念

社会信用代码由18位字符组成,结构如下:

  • 第1位:登记管理部门代码
  • 第2位:机构类别代码
  • 第3-8位:登记管理机关行政区划码
  • 第9-17位:主体标识码(组织机构代码)
  • 第18位:校验码

校验规则

校验码的计算方法如下:

  1. 将社会信用代码前17位字符分别乘以对应的系数(系数从左到右依次为:1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28)。
  2. 将乘积结果相加。
  3. 将总和除以31,取余数。
  4. 用31减去余数,得到校验码。如果结果为31,则校验码为0。

优势

  • 唯一性:确保每个法人和其他组织有一个唯一的标识码。
  • 标准化:统一编码标准,便于信息管理和交换。
  • 可校验:通过校验码可以验证代码的正确性。

应用场景

  • 政府管理:用于政府部门对法人和其他组织的管理和监督。
  • 商业活动:在商业交易中用于确认对方身份和信用状况。
  • 金融服务:银行和金融机构用于客户身份验证和风险评估。

示例代码

以下是一个简单的JavaScript函数,用于校验社会信用代码:

代码语言:txt
复制
function validateSocialCreditCode(code) {
    const coefficients = [1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28];
    const checkCodeMap = '0123456789ABCDEFGHJKLMNPQRTUWXY';

    let sum = 0;
    for (let i = 0; i < 17; i++) {
        sum += coefficients[i] * checkCodeMap.indexOf(code[i]);
    }

    const remainder = sum % 31;
    const checkCode = checkCodeMap[31 - remainder];

    return checkCode === code[17];
}

// 示例使用
const code = '91350100M000100Y43';
console.log(validateSocialCreditCode(code)); // 输出: true 或 false

可能遇到的问题及解决方法

  1. 校验码计算错误
    • 原因:可能是系数或校验码映射表使用错误。
    • 解决方法:仔细检查系数数组和校验码映射表是否正确。
  • 输入格式错误
    • 原因:输入的社会信用代码可能包含非法字符或长度不正确。
    • 解决方法:在计算校验码前,先验证输入字符串的长度和字符合法性。
  • 性能问题
    • 原因:大量数据校验时可能导致性能瓶颈。
    • 解决方法:可以考虑使用Web Workers进行多线程处理,或优化算法以提高效率。

通过上述方法和代码示例,可以有效校验社会信用代码的正确性,并在实际应用中确保数据的准确性和可靠性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券