您的位置:首页 > Web前端 > JavaScript

Mod31算法的javascript实现

2016-01-30 02:39 603 查看
  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,否则返回false
function validate(sCode){
if(! /^[\dABCDEFGHJKLMNPQRTUWXY]{2}\d{6}[\dABCDEFGHJKLMNPQRTUWXY]{10}$/.test(sCode)) return false;
return sCode.charAt(17) == mod31(sCode);
}
alert(validate('91350100M000100Y43'));





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: