idvalidator

package module
Version: v1.1.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 21, 2022 License: MIT Imports: 9 Imported by: 1

README

id-validator

简体中文 | ENGLISH

中国身份证号验证。

tests gocover.io Go Report Card GoDoc GitHub release GitHub license

功能

  • 中国身份证号验证
  • 获取身份证号信息
  • 升级 15 位身份证号为 18 位
  • 伪造符合校验的身份证号

环境要求

  • Go >= 1.11

安装

$ go get -u github.com/guanguans/id-validator

使用

这只是一个快速介绍, 请查看 GoDoc 获得详细信息。

package main

import (
	idvalidator "github.com/guanguans/id-validator"
	"gopkg.in/ffmt.v1"
)

func main() {
	// 验证身份证号合法性
	ffmt.P(idvalidator.IsValid("440308199901101512", false)) // 非严格模式验证大陆居民身份证18位
	ffmt.P(idvalidator.IsValid("440308199901101512", true))  // 严格模式验证大陆居民身份证18位
	ffmt.P(idvalidator.IsValid("11010119900307803X", false)) // 大陆居民身份证末位是X18位
	ffmt.P(idvalidator.IsValid("610104620927690", false))    // 大陆居民身份证15位
	ffmt.P(idvalidator.IsValid("810000199408230021", false)) // 港澳居民居住证18位
	ffmt.P(idvalidator.IsValid("830000199201300022", false)) // 台湾居民居住证18位

	// 获取身份证号信息
	ffmt.P(idvalidator.GetInfo("440308199901101512", false)) // 非严格模式获取身份证号信息
	ffmt.P(idvalidator.GetInfo("440308199901101512", true))  // 严格模式获取身份证号信息
	// []interface {}[
	// 	github.com/guanguans/id-validator.IdInfo{          // 身份证号信息
	// 		AddressCode: int(440308)                           // 地址码
	// 		Abandoned:   int(0)                                // 地址码是否废弃:1为废弃的,0为正在使用的
	// 		Address:     string("广东省深圳市盐田区")             // 地址
	// 		AddressTree: []string[                             // 省市区三级列表
	//			string("广东省")                                    // 省
	//			string("深圳市")                                    // 市
	//			string("盐田区")                                    // 区
	//		]
	// 		Birthday:      <1999-01-10 00:00:00 +0800 CST>     // 出生日期
	// 		Constellation: string("摩羯座")                     // 星座
	// 		ChineseZodiac: string("卯兔")                       // 生肖
	// 		Sex:           int(1)                              // 性别:1为男性,0为女性
	// 		Length:        int(18)                             // 号码长度
	// 		CheckBit:      string("2")                         // 校验码
	// 	}
	// 	<nil>                                              // 错误信息
	// ]

	// 生成可通过校验的假身份证号
	ffmt.P(idvalidator.FakeId()) // 随机生成
	ffmt.P(idvalidator.FakeRequireId(true, "江苏省", "200001", 1)) // 生成出生于2000年1月江苏省的男性居民身份证

	// 15位号码升级为18位
	ffmt.P(idvalidator.UpgradeId("610104620927690"))
	// []interface {}[
	// 	string("610104196209276908") // 升级后号码
	// 	<nil>                        // 错误信息
	// ]
}

测试

$ make test

变更日志

请参阅 CHANGELOG 获取最近有关更改的更多信息。

贡献指南

请参阅 CONTRIBUTING 有关详细信息。

安全漏洞

请查看我们的安全政策了解如何报告安全漏洞。

贡献者

相关项目

参考资料

协议

MIT 许可证(MIT)。有关更多信息,请参见协议文件

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FakeId

func FakeId() string

FakeId 生成假身份证号码

func FakeRequireId

func FakeRequireId(isEighteen bool, address string, birthday string, sex int) string

FakeRequireId 按要求生成假身份证号码 isEighteen 是否生成18位号码 address 省市县三级地区官方全称:如`北京市`、`台湾省`、`香港特别行政区`、`深圳市`、`黄浦区` birthday 出生日期:如 `2000`、`198801`、`19990101` sex 性别:1为男性,0为女性

func IsValid

func IsValid(id string, strict bool) bool

IsValid 验证身份证号合法性

func UpgradeId

func UpgradeId(id string) (string, error)

UpgradeId 15位升级18位号码

Types

type IdInfo

type IdInfo struct {
	AddressCode   int
	Abandoned     int
	Address       string
	AddressTree   []string
	Birthday      time.Time
	Constellation string
	ChineseZodiac string
	Sex           int
	Length        int
	CheckBit      string
}

IdInfo 身份证信息

func GetInfo

func GetInfo(id string, strict bool) (IdInfo, error)

GetInfo 获取身份证信息

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL