generateFakeIdCard
生成符合校验规则的假身份证号码。该函数生成的身份证号码仅用于测试目的,不应用于任何实际业务场景。
函数签名
typescript
function generateFakeIdCard(
options?: GenerateFakeIdCardOptions
): string
interface GenerateFakeIdCardOptions {
/** 性别:'male' 为男性(顺序码末尾为奇数),'female' 为女性(顺序码末尾为偶数) */
gender?: 'male' | 'female'
/** 出生年份(1900-当前年份) */
birthYear?: number
/** 出生月份(1-12) */
birthMonth?: number
/** 出生日期(1-31) */
birthDay?: number
/** 地区码(6位数字,前两位表示省份) */
areaCode?: string
}参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
options | GenerateFakeIdCardOptions | 否 | 生成选项,可指定性别、出生日期、地区码等 |
options 对象属性
| 属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|
gender | 'male' | 'female' | 否 | 性别。'male' 表示男性(顺序码末尾为奇数),'female' 表示女性(顺序码末尾为偶数) |
birthYear | number | 否 | 出生年份,范围:1900-当前年份 |
birthMonth | number | 否 | 出生月份,范围:1-12 |
birthDay | number | 否 | 出生日期,范围:1-31(会根据年月自动调整最大值) |
areaCode | string | 否 | 6位地区码(前两位表示省份)。如未指定,将从常见地区码中随机选择 |
返回值
| 类型 | 说明 |
|---|---|
string | 18位身份证号码,能够通过 isIdCard 函数验证 |
工作原理
- 生成或使用指定的地区码(6位)
- 生成或使用指定的出生日期(8位:YYYYMMDD),确保日期合法(如2月28/29日、大小月等)
- 生成顺序码(3位),如果指定了性别,最后一位会根据性别设置为奇数(男)或偶数(女)
- 根据前17位使用加权因子计算校验码(第18位)
- 返回完整的18位身份证号码
生成的身份证号码严格遵循身份证校验算法,能够通过 isIdCard 函数的验证。