身份证号码正则表达式怎么写?
整理 18 位身份证号码基础正则、出生日期校验思路和前后端表单验证注意事项。
打开正则表达式测试器基础身份证正则可以先校验格式
常见 18 位身份证号码由 17 位数字加最后一位数字或 X 组成。基础正则可以先判断长度和字符组成,例如 ^\d{17}[\dXx]$。
如果要进一步校验出生日期和校验位,单靠一个正则会变复杂,建议用代码逻辑补充判断。
- 基础格式:^\d{17}[\dXx]$
- 出生日期在第 7 到 14 位。
- 最后一位可能是数字,也可能是 X。
正则不等于完整身份校验
正则只能判断格式是否像身份证号,不能证明号码真实有效。实名场景应使用权威接口或业务系统校验。
前端表单建议只做基础格式提示,最终校验仍应放在后端。
测试时要准备边界样本
测试身份证正则时,要准备 17 位、19 位、末位小写 x、包含空格、出生日期非法等反例。这样更容易发现表达式是否过宽或过严。
常见问题
身份证最后一位小写 x 可以吗?
业务上通常可以接受小写 x,再统一转成大写 X 处理。
正则能判断身份证真假吗?
不能完全判断,只能做格式校验。真实性需要结合权威数据源。
为什么不建议写超长身份证正则?
过长表达式难维护,日期和校验位更适合用程序逻辑判断。