您的位置:

身份证格式校验详解

一、身份证格式校验规则

身份证是中国公民的唯一合法身份证明,其格式和位数都是有规定的。根据国家标准GB11643-1999的规定,身份证号码共18位,前17位为身份证号码主体,第18位为校验码。具体规定如下:

  1. 前6位为地址码,表示身份证持有人的常住地址。
  2. 接下来8位为出生日期码,表示身份证持有人的出生年月日。
  3. 紧接着4位为顺序码,表示在同一地址码所标识的区域范围内,对同年同月同日出生的人员编定的顺序号,顺序码是奇数分给男性,偶数分给女性。
  4. 最后1位为校验码,用来检验身份证的正确性。

身份证格式校验规则十分严格,必须满足以上要求才能够认定为合法的身份证号码。

二、身份证格式校验失败是什么意思

当一个身份证号码无法通过格式校验时,说明这个身份证号码不符合国家标准GB11643-1999的规定,可能存在以下几种情况:

  1. 身份证号码位数不够或者超过18位。
  2. 身份证地址码、出生日期码、顺序码或校验码不符合规定。
  3. 身份证地址码不存在或者错误,身份证顺序码不存在或者错误,身份证出生日期码不符合逻辑规律。

不符合规定的身份证号码在使用过程中可能会导致各种问题,比如无法办理证件、无法注册账号等等,因此必须保持身份证号码的格式正确。

三、身份证格式校验码

身份证格式校验码是指身份证号码中的最后一位数字,它是通过前17位数字计算出来的。为了方便检验,身份证格式校验码一般用数字0~9和字母X表示。身份证格式校验码的计算方法如下:

1. 将身份证号码前17位的每一位数字乘以对应的系数,得到17个积。
2. 将17个积相加得到一个总和。
3. 用总和除以11,并取余数得到一个数字。
4. 根据余数得到身份证格式校验码,余数为0~10时分别对应数字0~9,余数为11时对应字母X。

例如,对于身份证号码:11010119900101123X,身份证格式校验码的计算过程如下:

1. 第1位数字乘以7,得到7;第2位数字乘以9,得到18;……第17位数字乘以2,得到22。
2. 将17个积相加得到:7+18+……+22=238。
3. 用238除以11并取余数,得到:238 % 11 = 5。
4. 余数为5时,身份证格式校验码为5。

因此,身份证号码11010119900101123X的正确格式为:110101199001011235。

四、身份证号格式校验

针对身份证号码中的地址码、出生日期码、顺序码和校验码进行详细的格式校验,可以使用正则表达式或者各种编程语言的字符串处理函数进行实现。以下示例使用JavaScript实现了一个简单的身份证号码格式校验代码:

function checkIdCard(idCard) {
  // 正则表达式校验身份证号码格式
  var reg = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{3}[0-9X]$/;
  if (!reg.test(idCard)) {
    return false;
  }
  // 校验身份证号码的校验码
  var cardNumArr = idCard.split('');
  var checkCode = cardNumArr[17];
  var sum = 0;
  var coefficientArr = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
  var checkCodeArr = ['1','0','X','9','8','7','6','5','4','3','2'];
  for (var i=0; i<17; i++) {
    sum += parseInt(cardNumArr[i]) * coefficientArr[i];
  }
  if (checkCode != checkCodeArr[sum % 11]) {
    return false;
  }
  return true;
}

五、身份证格式校验在线

为了方便用户校验身份证号码的格式是否正确,很多网站都提供了在线的身份证格式校验工具。用户只需要输入身份证号码,点击校验按钮,即可得到格式校验的结果。以下是一个身份证格式校验在线工具的界面示例:

身份证格式校验在线工具

六、身份证格式校验错误

当用户输入的身份证号码格式不正确时,可以通过提示框或者提示文本的方式告知用户错误的原因。以下是一个身份证格式校验错误提示信息的示例:

身份证号码格式不正确,请重新输入!

七、身份证格式照片怎么弄

在实际使用身份证的过程中,有时需要拍摄或者上传身份证的正反面照片。一般来说,身份证照片需要满足以下要求:

  1. 照片清晰,没有模糊的情况。
  2. 照片中的身份证信息完整,没有缺失的情况。
  3. 照片的光线充足,没有过暗或者过亮的情况。
  4. 照片的尺寸和格式符合要求,比如像素不能太小,格式必须是jpg、png等常见图片格式。

由于身份证照片常常需要用于重要的证件办理等场合,因此建议用户在拍摄或者上传身份证照片时,选择可靠的相机或者上传渠道,确保照片质量和安全性。

八、身份证校验位

身份证校验位是指身份证号码的最后一位校验码,它是根据前17位数字计算出来的。身份证校验位一般用数字0~9和字母X表示,其计算方法同身份证格式校验码。由于校验位的存在,即使前17位数字没有发生变化,只要校验位错误,身份证号码也会被认为是不合法的。

九、身份证带x格式校验不对

在输入身份证号码时,有时会发现带有字母X的身份证号码无法通过格式校验。这是因为,在计算身份证格式校验码和校验位时,数字10无法直接使用,必须使用字母X进行替换。因此,用户在输入身份证号码时,必须输入大写的字母X,而不是小写的x或者其他字符。

十、身份证校验规则选取

在实际开发中,根据具体业务需求和使用场景的不同,可以针对身份证号码的不同位数或者不同规则进行自定义的格式校验。例如,对于只需要校验身份证号码的前17位数字是否正确的情况,可以使用以下的校验规则:

function checkIdCard(idCard) {
  // 正则表达式校验身份证号码前17位的格式
  var reg = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{2}$/;
  if (!reg.test(idCard)) {
    return false;
  }
  return true;
}

针对不同的业务需求和使用场景,可以选择不同的校验规则来对身份证号码进行格式校验。