china-id-card
v2.2.1
Published
China citizen identification number
Downloads
1,565
Readme
China ID Card Validator
基于 GB 11643-1999 标准的中华人民共和国公民身份证号码验证工具库
English · 在线文档 · 国内访问 · 更新日志 · 标准 PDF
✨ 特性
- ⚡ 0 依赖 - 无任何第三方依赖,安全可靠
- ✅ 格式验证 - 检查身份证基本格式
- 🏙️ 省份校验 - 验证省份代码有效性
- 🎂 生日校验 - 验证出生日期合法性
- 🔐 校验码验证 - 使用加权算法验证校验位
- 🔄 15/18位转换 - 支持相互转换
- 📊 信息解析 - 解析省份、出生日期、性别、年龄
- 🔒 脱敏处理 - 隐藏部分身份证号码
🖥 环境支持
- Node.js 18+
- 现代浏览器
- Deno / Bun
📦 安装
pnpm add china-id-cardnpm install china-id-cardbun add china-id-card🔨 使用
import { isValid, parse, mask } from 'china-id-card'
const info = parse('622922197808118498')
// → { isValid: true, province: '甘肃省', birthDate: '1978-08-11', gender: 'male', age: 46, ... }
isValid('622922197808118498') // → true
mask('622922197808118498') // → '622***********8498'API
isValid(id: string): boolean
快速验证身份证是否有效。
import { isValid } from 'china-id-card';
isValid('110101199001011001'); // trueparse(id: string): IDCardInfo
解析身份证详细信息,返回对象包含以下字段:
| 字段 | 类型 | 说明 |
| --------------- | ------------------ | --------------------- |
| isValid | boolean | 身份证是否有效 |
| provinceCode | string | 省份代码 |
| province | string | 省份名称 |
| birthDate | string | 出生日期 (YYYY-MM-DD) |
| gender | 'male' | 'female' | 性别 |
| age | number | 年龄 |
| fifteenDigit | string | null | 15位身份证号码 |
| eighteenDigit | string | null | 18位身份证号码 |
mask(id: string): string
对身份证进行脱敏处理,显示前3位和后4位。
toEighteen(id: string): string | null
将15位身份证转换为18位。
getCheckCode(id: string): string | null
计算18位身份证的校验码。
checkBaseFormat(id: string): boolean
检验身份证基本格式(长度和字符规则)。
checkProvince(id: string): boolean
检验省份代码是否有效。
📖 文档
🤝 贡献
欢迎提交 Pull Request 和 Issue!
📄 许可证
MIT License
Made by Tony
