身份证批量校验
一次粘贴多行身份证号,逐行给出是否合法、错在哪里,并提取生日、性别、年龄和归属地,可导出表格。
整个校验都在你自己的浏览器里完成,号码不会上传,断网也能用。示例号码按规则凑出来,不是真实证件,请只粘贴本人或已获授权的号码。
结果
把要校验的号码粘到上面
粘贴号码之后,这里会逐行列出校验结果和提取出来的信息。
使用说明
这一页的单个号码校验逻辑与身份证校验完全一致:先用前 17 位加权求和除以 11 得到校验码,再核对第 7 到 14 位是不是合法公历日期(2 月 29 日只在闰年成立),最后看前两位是否落在省级行政区代码表里。批量只是把这三步套用在每一行上,所以同一个号码在两个页面里不会给出不同结论。
切分规则是从粘贴习惯倒推出来的。从 Excel 复制一整列得到的是换行分隔,复制一整行得到的多是制表符或逗号分隔,从聊天窗口复制可能是逗号、分号或空格。所以解析顺序是换行、逗号、分号、制表符,最后才轮到空格;只有当整个片段去掉空格后既不是 15 位也不是 18 位时,才继续按空格拆,这样「110101 19900307 8515」这种分组书写不会被拆散。
最常见的两类失败其实都不在号码本身。一类是 Excel 把号码当数字处理,导致末尾变成 0 或者显示成科学计数法,原始数据已经损坏,工具只能提醒你回表格改格式;另一类是全角字符,看起来和半角一模一样,本页会先转换成半角再校验,并在说明里注明。剩下的才是真的校验位或出生日期不匹配。
15 位老号码会在出生年前补「19」并补上算出来的校验位,状态里标明「已升位」,同时显示升位后的 18 位结果;判断重复时也按升位后的号码归并,所以 15 位和它对应的 18 位写在同一批里会被认成重复。归属地目前只给到省级:前两位稳定对应省,第 3、4 位的区县代码经历过多轮撤并,不在本页下结论。
导出的 CSV 带 UTF-8 BOM,Excel 直接双击打开中文列名不会乱码;以等号、加号、减号、at 符号开头的单元格会先加一个单引号,避免被 Excel 当公式执行。最后提醒一句:校验通过只说明格式自洽,不代表这张证件真实存在,请只在合规范围内处理你已获授权的号码。
常见问题
为什么从 Excel 粘过来的号码末尾变成了 0?
Excel 的单元格把数字只保留 15 位有效数字,而身份证号有 18 位。一旦这一列被当成数字,第 16 位往后的数就被抹掉、末尾补 0,位数和内容都已经变了。这不是这个工具读错,原始信息在表格里就已经丢了。回表格把该列设成「文本」再复制,或者复用原始数据的 CSV;本页检测到末尾连续多个 0 时会单独提醒你核对。
一行写好几个号码会被识别吗?
会。先按换行切,再按逗号、分号、制表符切,最后才按空格切。之所以空格放在最后,是因为十八位号码常被按 6-8-4 分组、中间带空格书写,一上来就按空格拆会把它拆散。所以只有当整个片段去掉空格后不是 15 位或 18 位时,才把空格当分隔符继续拆。
全角数字和全角 X 要手动改吗?
不用。全角的数字、字母和冒号会在校验前统一转成半角。全角和半角看起来几乎一样,肉眼很难分辨,直接拿去校验只会收到一个「长度不对」,让人一头雾水,所以这里先转换再判,并在结果里注明含全角字符。
15 位的老号码算合法吗?
算。15 位是 1999 年以前签发的写法,没有校验位。本页会在出生年前补「19」得到 17 位,再算出第 18 位的校验码补上,并在状态里标明「已升位」,同时显示升位后的号码。所以 15 位和对应的 18 位命中同一个号码时,也会被认成重复行。
重复号码是怎么判断的?
按规范化后的 18 位号码去重,15 位老号先升位再参与比较,大小写的 X 视为同一个字符。同一行里出现两次以上就会在「是否重复」列标出,无论这些行本身是否通过校验——一个号码写错了一位而重复出现,恰恰是最该回头核对的情况。
「地区码不存在」是什么意思?
身份证前两位是省级代码,取值范围是固定的,比如 11 是北京、44 是广东。这里只核对前两位是否在《GB/T 2260》的省级代码表里,不判断第 3、4 位的区县代码是否还在用:区县经历过多轮撤并,同一个代码在不同年份可能对应不同的区,据此下结论容易误伤,所以前端两位。
提示校验通过,就说明这个号码是真实存在的吗?
不能。校验位和出生日期只能说明这串数字在格式上自洽,随手编造的人同样可以算出一个校验码正确的号。要确认真伪必须走官方核验渠道。这一页的定位是批量清洗数据、快速揪出录入错误,不是身份核验。
号码会不会被上传?一次能处理多少行?
完全在本地计算,不发任何网络请求,断网也能用,粘贴的内容刷新后即消失。一次最多处理 1000 行,超过会截断并提示,这是为了避免页面卡死。另外请只处理本人或已获得授权的号码,不要粘贴他人的身份证信息。要核对单个号码的细节,用<NuxtLink to="/id-card">身份证校验</NuxtLink>。
相关:身份证校验