当前位置: 首页 > news >正文

合肥网站建设培训班wordpress采集规则

合肥网站建设培训班,wordpress采集规则,陈木胜老婆吴君如,设计说明怎么写范文文章目录 1.简介2.构成规则行政区划代码出生日期码顺序码校验码示例 3.Golang 实现校验4.dablelv/cyan5.小结参考文献 1.简介 公民身份号码是中华人民共和国为每个公民从出生之日起编定的唯一的、终身不变的身份代码。 公民身份号码在中华人民共和国公民办理涉及政治、经济、…

文章目录

  • 1.简介
  • 2.构成规则
    • 行政区划代码
    • 出生日期码
    • 顺序码
    • 校验码
    • 示例
  • 3.Golang 实现校验
  • 4.dablelv/cyan
  • 5.小结
  • 参考文献

1.简介

公民身份号码是中华人民共和国为每个公民从出生之日起编定的唯一的、终身不变的身份代码。

公民身份号码在中华人民共和国公民办理涉及政治、经济、社会生活等权益事务方面广泛使用,由中华人民共和国公安部负责公民身份号码的编制和组织实施工作。

早期身份号码叫社会保障号,为 15 位。

1999年8月26日中华人民共和国国务院发布《国务院关于实行公民身份号码制度的决定》(国发[1999]15号),这个文件规定自1999年10月1日起在全国建立和实行公民身份号码制度。

这个公民身份号码就是我们现在使用的第二代身份证号码,为18位,且终身不变。

在这里插入图片描述

2.构成规则

公民身份号码是特征组合码。

公民身份号码按照 GB11643-1999《公民身份号码》国家标准编制,由18位数字组成:前6位为行政区划代码,第7至14位为出生日期码,第15至17位为顺序码,第18位为校验码。

18位数字组合的方式是:
在这里插入图片描述

行政区划代码

对于内地户籍居民,地址码是公民首次获得身份号码(例如新生儿出生登记、无户口人员登记户口)时所在县(市、镇、区)的行政区划代码,如110102是北京市西城区,如果日后行政区划出现调整或将户口迁往外地地址码也不会改变。由于新生儿通常根据属人主义确定户籍,故地址码并不总能代表公民的出生地。

对于持有港澳台居民居住证的港澳台居民,行政区划代码根据原住地分配台湾(71)、香港(81)和澳门(82),只精确到省级,第三位至第六位全部为 0。因此,台湾、香港和澳门居民的地址码分别为 710000、810000 和 820000。

出生日期码

出生日期码表示公民出生的公历日期:年(4位)、月(2位)、日(2位)。

顺序码

顺序码是给同行政区划代码同出生日期码的人编定的顺序号,其中单数分配给男性,双数分配给女性

校验码

校验码采用的是 ISO 7064:1983, MOD 11-2 校验码系统。校验码为一位数,但如果最后采用校验码系统计算的校验码是“10”,碍于身份证号码为18位的规定,则以“X”代替校验码“10”。

校验码计算方法如下:

  1. 将身份证号码前17位数分别乘以不同的系数。

从第一位到第十七位的系数分别为:

7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
  1. 将这17位数字和系数相乘的结果相加。

  2. 用加出来和除以11,看余数是多少?

  3. 余数只可能有 11个 数字:

0-1-2-3-4-5-6-7-8-9-10

分别对应的最后一位身份号码为:

1-0-X-9-8-7-6-5-4-3-2

示例

例如,假设有一名女性,出生地为北京市西城区(对应地址码为110102),出生于1984年4月6日(对应出生日期码为19840406),登记时的顺序码为970(女性分配为双数,男性为单数),则校验码为X,完整的公民身份号码为11010219840406970X。

如果这名女性在香港出生,并同时持有香港永久性居民身份证,那么在申请港澳台居民居住证时,其对应地址码就为810000,又因为出生于1994年8月23日(对应出生日期码为19940823),登记时的顺序码为002(女性分配为双数,男性为单数),则校验码为1,完整的公民身份号码为 810000199408230021。

3.Golang 实现校验

下面以 Golang 为例,给出实现。

// Chinese id card number.
const idCodeRegexString = "^[1-9]\\d{5}(19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])\\d{3}[\\dX]$"var	idCodeRegex  = regexp.MustCompile(idCodeRegexString)// IsChineseIdCode checks string is chinese id card number.
func IsChineseIdCode(input string) bool {if len(input) != 18 {return false}// Check basic format.if !idCodeRegex.MatchString(input) {return false}// Check if the birthday is valid.birthday := input[6:14]_, err := time.Parse("20060102", birthday)if err != nil {return false}// Calculate the checksum.weights := []int{7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2}checkCode := []byte{'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'}var sum intfor i := 0; i < 17; i++ {var num intnum, err = strconv.Atoi(string(input[i]))if err != nil {return false}sum += num * weights[i]}mod := sum % 11return checkCode[mod] == input[17]
}

校验示例:

func main() {// empty stringfmt.Println(IsChineseIdCode("")) // false// length incorrectfmt.Println(IsChineseIdCode("44030619810825051")) // false// birthday incorrectfmt.Println(IsChineseIdCode("440306888808250512")) // false// check code incorrectfmt.Println(IsChineseIdCode("440306198108250511")) // false// valid id numberfmt.Println(IsChineseIdCode("440306198108250515")) // false
}

运行输出:

false
false
false
false
true

4.dablelv/cyan

上述校验函数已经添加至工具库 dablelv/cyan,可 import 直接使用,欢迎大家 Star 和 PR。

package mainimport ("fmt""github.com/dablelv/cyan/strings"
)func main() {// length incorrectfmt.Println(strings.IsChineseIdCode("44030619810825051")) // false// birthday incorrectfmt.Println(strings.IsChineseIdCode("440306888808250512")) // false// check code incorrectfmt.Println(strings.IsChineseIdCode("440306198108250511")) // false// valid id numberfmt.Println(strings.IsChineseIdCode("440306198108250515")) // true
}

运行输出:

false
false
false
false
true

5.小结

通过上述代码,我们实现了一个高效的身份证号码校验工具。虽然本地校验可过滤大部分无效号码,但在实际业务中仍需结合公安系统接口进行实名认证。此工具适用于以下场景:

  • 用户注册时的初步格式校验。

  • 数据清洗中的非法号码过滤。

完整代码已考虑边界条件(如闰年、校验码 X 的大小写),开发者可根据需求扩展地址码库或优化正则表达式。

注意事项:身份证号码包含个人敏感信息,处理时需遵守《个人信息保护法》,避免数据泄露。


参考文献

ISO 7064:1983
GB 11643-1999 - 国家标准全文公开
国务院关于实行公民身份号码制度的决定

http://www.dtcms.com/a/407740.html

相关文章:

  • Spring Cloud Gateway 环境属性修改漏洞复现 (CVE-2025-41243)
  • 自然语言编程如何重塑软件开发教育?新人学习路径的辩证思考
  • 金华网站建设公司哪个好12389举报网站建设项目
  • 动态代理与反射
  • VUE 和 jquery 对比总结
  • 免费自学编程的app网站seo诊断的主要内容
  • Modbus TCP转RS485智能网关应用实例:集成工业测温器至云平台的数据采集方案
  • 需求模糊:架构复杂度背后的“隐藏杀手”
  • ARM芯片架构之CoreSight SoC-400组件详解
  • 做名片最好的网站是哪个wordpress订阅功能
  • 免费有限公司网站做环卫车怎么做网站
  • 网站设网页设计郑州外贸网站建站
  • 【数据结构】解锁数据结构:通往高效编程的密钥
  • 2、网关统一认证 + 服务内部鉴权
  • 买程序的网站进入京东商城
  • 开发中的英语积累 P5:Dump、Constraint、Hierarchy、Optimization、Measure、Attribute
  • 如何建设网站知乎网站淘宝客 没备案怎么做
  • 网络技术工程师宁波seo优化报价多少
  • php网站建设个人总结智慧团建官网登录口入口
  • 营销型网站建设供货商长治市建设厅官方网站
  • 网站建设 外包是什么意思视频营销
  • 水洗唛防伪标签:让品牌防伪与品质感双向升级
  • vue3使用leaflet的时候高亮显示省市区
  • 为公司做的图可以上传网站吗长沙移动网站
  • 计算机网站建设相关的书籍要怎样创造网站
  • 深度清理实战:如何清除系统垃圾与应用残留文件
  • 知识图谱构建
  • LAFAN fallAndGetUp2_subject2 数据 isaacsim5.0 可视化
  • 跨境电商的现状及前景网站加速优化
  • 做加盟代理的网站c2c网站建设公司