​十八位身份证编码规则对照表(身份证编码规则及各位表示含义)

十八位身份证编码规则对照表(身份证编码规则及各位表示含义)

在我国现行的身份证系统中共有 15 位和 18 位两种身份证号码,第一代身份证大多为 15 位号码,由于 15 位身份证只能为 1900.01.01 到 1999.12.31 出生的人编码(千年虫问题),所以后来逐步替换为 18 位的身份证号码。

十八位身份证编码规则对照表(身份证编码规则及各位表示含义)

编码规则15位

15 位身份证编码规则为:DDDDDD YYMMDD XXS

各组成部分说明:

部分名

描述

DDDDDD

6 位地区编码

YYMMDD

出生年月。年份用 2 位表示

XXS

顺序码。

其中 S 为性别识别码,奇数为男,偶数为女

例如某个 15 位 ID 为:513701930509101。

18位

18 位身份证较 15 位身份证,出生年月改变为 8 位,并引入了校验位。编码规则为:DDDDDD YYYYMMDD XXX Y

各组成部分说明:

部分名

描述

DDDDDD

6 位地区编码

YYYYMMDD

出生年月。年份用 4 位表示

XXX

顺序码。奇数为男,偶数为女

Y

校验位。前 17 位值计算而得

校验位 Y 取值范围为 [1, 0, X, 9, 8, 7, 6, 5, 4, 3, 2],其采用加权方式校验,校验规则为:p = mod(∑(Ai×Wi), 11)

参数说明:

i 为身份证数字所在的位数,1-17;Ai 为身份证第 i 位对应的数字值;Wi 为加权因子,值为 [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];p 表示获取 Y 范围值的第 p+1 个值作为校验值 Y;

例如某个 18 位 ID 位:513701199305091010,校验位后续计算得出。

格式校验

通过分析身份证的 编码规则,我们就可以得出身份证的校验规则,这里使用正则表达式去进行匹配。

15位

15 位身份证DDDDDD YYMMDD XXS的每部分的正则匹配表达式为:

部分名

正则表达式

DDDDDD

[1-9]\d{5}

YYMMDD

(\d{2})(0[1-9]|(1[0-2]))(([0-2][1-9])|([1-2]0)|31)

XXS

\d{3}

由此可得 15 位身份证证正则匹配表达式为:

'^[1-9]\d{5}\d{2}(0[1-9]|(1[0-2]))(([0-2][1-9])|([1-2]0)|31)\d{3}$'//可简化为:'^[1-9]\d{7}(0[1-9]|1[0-2])([0-2][1-9]|[1-2]0|31)\d{3}$'

PHP 中校验为:

const ID_15_PREG = '/^[1-9]\d{7}(0[1-9]|1[0-2])([0-2][1-9]|[1-2]0|31)\d{3}$/';public static function validate($id){if (!is_string($id) || empty($id)) {return false;} else if (strlen($id) == 15 && preg_match(static::ID_15_PREG, $id)) {return true;}return false;}18位

同理,18 位身份证DDDDDD YYYYMMDD XXX Y的每部分的正则匹配表达式为:

部分名

正则表达式

DDDDDD

[1-9]\d{5}

YYYYMMDD

([1-9]\d{3})(0[1-9]|(1[0-2]))(([0-2][1-9])|([1-2]0)|31)

XXX

\d{3}

Y

\d

由此可得 18 位身份证证正则匹配表达式为:

'^[1-9]\d{5}([1-9]\d{3})((0[1-9]|(1[0-2]))(([0-2][1-9])|([1-2]0)|31)\d{3}\d|[Xx]$'//可简化为:'^[1-9]\d{5}[1-9]\d{3}(0[1-9]|1[0-2])([0-2][1-9]|[1-2]0|31)(\d{4}|\d{3}[Xx])$'

根据校验位校验规则,实现 校验位 的编码:

public static function getCheckBit($id){if (18 !== strlen($id)) {return false;}$yArr = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];$wArr = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];$sum = 0;for ($i = strlen($id)-2; $i>=0; $i--) {$sum += $id[$i] * $wArr[$i];}$key = $sum % 11;return $yArr[$key];}

所以,PHP 中校验逻辑为:

const ID_18_PREG = '/^[1-9]\d{5}[1-9]\d{3}(0[1-9]|1[0-2])([0-2][1-9]|[1-2]0|31)(\d{4}|\d{3}[Xx])$/';public static function validate($id){if (!is_string($id) || empty($id)) {return false;} else if (strlen($id) == 18 && preg_match(static::ID_18_PREG, $id) && strtoupper($id[17]) === self::getCheckBit($id)) {return true;} else if (strlen($id) == 15 && preg_match(static::ID_15_PREG, $id)) {return true;}return false;}15位转化为18位

在金融等某些特殊行业,需要将 15 位身份证号码格式化为 18 位。由于 15 位身份证颁发年份都是 19** 年,所以在转化为 18 位时补充出生年份时直接添加 19 即可。

转化步骤:

年份补全成 4 位,年份前直接添加 19;补全上步的新号码为 18 位,可以在原号码末尾直接追加 X;计算新号码的校验位并替换原校验位值;

15 位身份证转化为 18 位的代码如下:

public static function format18($id){if (!static::validate($id)) {return '';} else if (15 !== strlen($id)) {return $id;}$newId = substr($id, 0, 6) . '19' . substr($id, -9) . 'X';$newId[17] = static::getCheckBit($newId);return $newId;}

转化示例结果:

//15位---------------------18位'370725881105149' => '37072519881105149X'

相关推荐

​现在不给花换盆,分分钟死给你看!

​现在不给花换盆,分分钟死给你看!

71

现在不给花换盆,分分钟死给你看! 栀子花换盆 最近很多人都买了栀子花,但是如果买来的时候盆里是黄泥土,那可能用不了几天叶子就会耷拉,最好进行一次换盆! 操作步骤: 1、...

​松下裤带子的下一句(松下裤带子搞笑句子)

​松下裤带子的下一句(松下裤带子搞笑句子)

153

松下裤带子的下一句(松下裤带子搞笑句子) 松下裤带子的下一句话:“不要让孩子输在起跑线上”。这句话在当时引起了轩然 *** ,很多家长纷纷效仿,认为自己的孩子不能输在起跑线...

​鱼竿的选择技巧,鱼竿的选择钓鲫鱼最好

​鱼竿的选择技巧,鱼竿的选择钓鲫鱼最好

96

鱼竿的选择技巧,鱼竿的选择钓鲫鱼最好 选择鱼竿的技巧包括了长度、重量、材质和类型等方面。主要根据钓鱼方式、钓鱼场所、目标鱼种等条件进行选择。例如,钓小鱼可选择短且轻...

​铠甲勇士土之地虎铠甲铠甲介绍

​铠甲勇士土之地虎铠甲铠甲介绍

167

铠甲勇士土之地虎铠甲铠甲介绍 接下来给大家详细介绍的是铠甲勇士土之地虎铠甲,“话费侠”手动滑稽[奸笑]。 地虎侠 地虎侠是大地岩土土的意志,拥有大地岩土十方载纳的力量。...

​加盟便利店十大骗局(加盟一家便利店多狗血)

​加盟便利店十大骗局(加盟一家便利店多狗血)

138

加盟便利店十大骗局(加盟一家便利店多狗血) 便利店的便利性大家都很清楚,虽然商品不是很全面,但是里面的商品对于日常所需的基本用品以及小零食和饮用水这方面还是很方面的...

​酸雨的形成及危害,酸雨的危害有哪些?

​酸雨的形成及危害,酸雨的危害有哪些?

123

酸雨的形成及危害,酸雨的危害有哪些? 酸雨的危害有哪些 酸雨的危害 (一) □ 酸雨通常是指表示酸碱度指数的 Ph 值低于 5.6 的酸性降水。 □ 我国酸雨(酸雨通常是指表示酸碱度指...

​什么是暗线光谱

​什么是暗线光谱

113

什么是暗线光谱 暗线光谱是选择性吸收物质被连续波长辐射照射时,产生的连续光谱背景上出现一些暗线组成的线光谱,今天小编就来说说关于什么是暗线光谱?下面更多详细答案一起...

​梨的由来

160

梨的由来 梨起源于中亚地区,早在史前时期,就已有野生品种。梨有3000年左右的种植历史,在古印度、古希腊、古罗马和古中国,梨是最受欢迎的水果之一。 花为白色,或略带黄色、...

​简约而不简单(简约而不简单什么意思)

​简约而不简单(简约而不简单什么意思)

198

简约而不简单(简约而不简单什么意思) 简约而不简单什么意思 简约而不简单的意思就是指某一样东西看起来比较简单成的一种象,但并不是特别的简单,不是单纯的东西少,而是看...

​黄玉髓戴久会变色

​黄玉髓戴久会变色

190

黄玉髓戴久会变色 黄玉髓是一种宝石,如果长时间佩戴不摘下来,可能会导致变色。这是因为黄玉髓可能会受到汗水、化妆品、香水、香烟等物质的影响,从而造成颜色的改变。此外,...

​红心火龙果和白心火龙果的区别

179

红心火龙果和白心火龙果的区别 吃过火龙果的人都知道,火龙果的肉有红心的和白心的,以前是白心的比较多见,随着种植技术的提高,这几年出现了红心火龙果。那么红心火龙果和白...

​海鲜菇能焯水吗 海鲜菇焯水不

​海鲜菇能焯水吗 海鲜菇焯水不

157

海鲜菇能焯水吗 海鲜菇焯水不 海鲜菇没焯水的情况下可以炒了吃,但不建议直接炒了吃。海鲜菇没焯水就直接炒着吃,可能吃起来会有一股海鲜的咸腥味,口感比较差,一些受不了腥...

​干冰发快递有效时间 顺丰快递干冰几天化

​干冰发快递有效时间 顺丰快递干冰几天化

140

干冰发快递有效时间 顺丰快递干冰几天化 一般可以撑1-2天。干冰是一种比冰更好的致冷剂,而且干冰在熔化时,不会像冰那样化成液体,它可以直接蒸发成为温度很低的、干燥的二氧...