Skip to content

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
}

参数

参数名类型必填说明
optionsGenerateFakeIdCardOptions生成选项,可指定性别、出生日期、地区码等

options 对象属性

属性名类型必填说明
gender'male' | 'female'性别。'male' 表示男性(顺序码末尾为奇数),'female' 表示女性(顺序码末尾为偶数)
birthYearnumber出生年份,范围:1900-当前年份
birthMonthnumber出生月份,范围:1-12
birthDaynumber出生日期,范围:1-31(会根据年月自动调整最大值)
areaCodestring6位地区码(前两位表示省份)。如未指定,将从常见地区码中随机选择

返回值

类型说明
string18位身份证号码,能够通过 isIdCard 函数验证

工作原理

  1. 生成或使用指定的地区码(6位)
  2. 生成或使用指定的出生日期(8位:YYYYMMDD),确保日期合法(如2月28/29日、大小月等)
  3. 生成顺序码(3位),如果指定了性别,最后一位会根据性别设置为奇数(男)或偶数(女)
  4. 根据前17位使用加权因子计算校验码(第18位)
  5. 返回完整的18位身份证号码

生成的身份证号码严格遵循身份证校验算法,能够通过 isIdCard 函数的验证。