组织机构代码

18位身份证和组织机构代码校验ORACLE函数

前提是你 提交于 2020-03-02 17:13:35
18位身份证标准在国家质量技术监督局于1999年7月1日实施的gb11643-1999《公民身份号码》中做了明确规定。   gb11643-1999《公民身份号码》为gb11643-1989《社会保障号码》的修订版,其中指出将原标准名称“社会保障号码”更名为“公民身份号码”,另外gb11643-1999《公民身份号码》从实施之日起代替gb11643-1989。    公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码。 其含义如下:   1. 地址码:表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按gb/t2260的规定执行。   2. 出生日期码:表示编码对象出生的年、月、日,按gb/t7408的规定执行,年、月、日分别用4位、2位、2位数字表示,之间不用分隔符。   3. 顺序码:表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。    校验的计算方式:   1. 对前17位数字本体码加权求和   公式为:s = sum(ai * wi), i = 0, ... , 16   其中ai表示第i位置上的身份证号码数字值,wi表示第i位置上的加权因子,其各位对应的值依次为: 7 9 10 5 8 4 2 1 6

组织机构代码和社会信用码验证

依然范特西╮ 提交于 2019-11-26 23:49:00
function checkCode() {//社会统一验证码 var code = document.getElementById("userName").value; if(code.length != 18&&code.length != 9){ alert("社会信用代码或者组织机构代码长度错误!"); return false; } if(code.length == 9){ var ws = [3, 7, 9, 10, 5, 8, 4, 2]; var str = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; var reg = /^([0-9A-Z]){9}$/; if (!reg.test(code)) { alert("组织机构代码错误"); return false; } var sum = 0; for (var i = 0; i < 8; i++) { sum += str.indexOf(code.charAt(i)) * ws[i]; } alert(code.substring(8,9)); var C9 = 11 - (sum % 11); if (C9 == 11) { C9='0'; } else if (C9 == 10) { C9='X'; } alert(C9); if(C9!=code.substring