营业执照编码验证规则(15位和18位)
营业执照编码验证规则(15位和18位)
鉴于历史原因,营业执照注册号为15位,但是⾃2016年7⽉1⽇后,“三证合⼀、⼀照⼀码”,将营业执照正副本照⾯加载的15位注册号调整为18位的法⼈和其他组织统⼀社会信⽤代码(个体⼯商户营业执照除外)。
为了兼顾,同时使⽤两种编码的校验,
15位编码的校验依据GS15—2006 《⼯商⾏政管理市场主体注册号编制规则》,
代码结构⼯商注册号由14位数字本体码和1位数字校验码组成,其中本体码从左⾄右依次为:6位⾸次登记机关码、8位顺序码,1位数字校验码组成。
18位编码的校验依据GB 32100-2015 《法⼈和其他组织统⼀社会信⽤代码编码规则》,
统⼀代码由⼗⼋位阿拉伯数字或⼤写英⽂字母(不使⽤I、O、Z、S、V)组成,包括第1位登记管理部门代码、第2位机构类别代码、第3位~第8位登记管理机关⾏政区划码、第9位~第17位主体标识码(组织机构代码)、第18位校验码五个部门。
15位编码校验代码如下:
家装水电
--- 15位代码有部分错误,请只参考⽅法:具体判断逻辑还请参考国标,⽂档地址:
/**
* Desc: 营业执照编号验证
* Created  2016/5/14.
*/
public class Regex_BusinessLicenseNumber {
/**
* 营业执照注册号校验正确返回码
*/
public static String isBusinesslicense = "true";
private static String error_Businesslicense_Empty = "请输⼊营业执照注册号";
public static String error_Businesslicense = "您输⼊的营业执照注册号有误,请核对后再输!";
public static String error_Businesslicense_No = "您输⼊的营业执照注册号不⾜15位,请核对后再输!";
static String  test = "110108000000016" ;// 营业执照号
public static void main(String[] args ){
System.out.println(test);
isBusinesslicense(test);
}
食品安全的英语作文
/**
* 校验营业执照注册号
* @param businesslicense
* @return
*/
public static String isBusinesslicense(String businesslicense){
if ("".equals(businesslicense)||" ".equals(businesslicense)){ System.out.println(error_Businesslicense_Empty);
return  error_Businesslicense_Empty;
}else if(businesslicense.length()!=15){ System.out.println(error_Businesslicense_No);
return error_Businesslicense_No;
}
String businesslicensePrex14 = businesslicense.substring(0,14);// 获取营业执照注册号前14位数字⽤来计算校验码
String businesslicense15 = businesslicense.substring(14,businesslicense.length());// 获取营业执照号的校验码
char[] chars = CharArray();
int[] ints = new int[chars.length];
for(int i=0; i<chars.length;i++){
ints[i] = Integer.parseInt(String.valueOf(chars[i]));
}
getCheckCode(ints);
if(businesslicense15.equals(getCheckCode(ints)+"")){// ⽐较填写的营业执照注册号的校验码和计算的校验码是否⼀致
System.out.println(isBusinesslicense);塞下曲 卢纶
return  isBusinesslicense;
}
System.out.println(error_Businesslicense);
return error_Businesslicense;
}
/**
* 获取营业执照注册号的校验码
* @param ints
* @return
*/
private static int  getCheckCode(int[] ints){
if (null != ints && ints.length > 1) {
int ti = 0;
int si = 0;// pi|11+ti
int cj = 0;// (si||10==0?10:si||10)*2
int pj = 10;// pj=cj|11==0?10:cj|11
for (int i=0;i<ints.length;i++) {
ti = ints[i];
pj = (cj % 11) == 0 ? 10 : (cj % 11);
si = pj + ti;
cj = (0 == si % 10 ? 10 : si % 10) * 2;
if (i == ints.length-1) {
pj = (cj % 11) == 0 ? 10 : (cj % 11);换手机号了怎么办
return pj == 1 ? 1 : 11 - pj;
}
}
}
return -1;
}
}
18位编码校验代码如下:
/**
* Created by Administrator on 2016/10/23.
*/
function checkCode(){
var code = ElementById("zuzhiCode").value;
if(code.length != 18){
alert("社会信⽤代码长度错误!");
return false;
}
var reg = /^([0-9ABCDEFGHJKLMNPQRTUWXY]{2})([0-9]{6})([0-9ABCDEFGHJKLMNPQRTUWXY]{9})([0-9Y])$/;    if(!st(code)){
alert("社会信⽤代码校验错误!");
8023什么意思代表什么return false;
}
var str = '0123456789ABCDEFGHJKLMNPQRTUWXY';
var ws =[1,3,9,27,19,26,16,17,20,29,25,13,8,24,10,30,28];
var codes  = new Array();
codes[0] = code.substr(0,code.length-1);
codes[1] = code.substr(code.length-1,code.length);
var sum = 0;
for(var i=0;i<17;i++){
sum += str.indexOf(codes[0].charAt(i)) * ws[i];
}海的女儿的作者
var c18 = 31 - (sum % 31);
if(c18 == 31){
alert("第18位 == 31");
c18 = 'Y';
}else if(c18 == 30){
alert("第18位 == 30");
c18 = '0';
}
if(c18 != codes[1]){
alert("社会信⽤代码有误!"+c18);
return false;
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。