Mod31算法的javascript实现

来源:互联网 发布:淘宝卖家流量钱包 编辑:程序博客网 时间:2024/05/29 04:52

  Mod31算法用于国标GB32100-2015 《法人和其他组织统一社会信用代码编码规则》的代码的验证。具体如”三证合一“后的营业执照上代码的验证。


  Mod31算法Javascript实现:

function mod31(sCode){var w = [1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28];var c = '0123456789ABCDEFGHJKLMNPQRTUWXY';var sum = 0;for (var i = 0; i < 17; i++){sum += c.indexOf(sCode.charAt(i)) * w[i];}var r = 31 - (sum % 31); if(r == 31) c18 = '0'; else c18 = c.charAt(r);return c18;}


  验证示例:


// 参数:待验证的代码// 返回:验证成功返回true,否则返回falsefunction validate(sCode){if(! /^[\dABCDEFGHJKLMNPQRTUWXY]{2}\d{6}[\dABCDEFGHJKLMNPQRTUWXY]{10}$/.test(sCode)) return false;return sCode.charAt(17) == mod31(sCode);}alert(validate('91350100M000100Y43'));




0 0
原创粉丝点击