id-validator - Go 版中國身份證號驗證庫。
功能
- 中國身份證號驗證
- 獲取身份證號資訊
- 升級 15 位身份證號為 18 位
- 偽造符合校驗的身份證號
安裝
$ 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")) // 大陸居民身份證18位
ffmt.P(idvalidator.IsValid("610104620927690")) // 大陸居民身份證15位
ffmt.P(idvalidator.IsValid("810000199408230021")) // 港澳居民居住證18位
ffmt.P(idvalidator.IsValid("830000199201300022")) // 臺灣居民居住證18位
// 獲取身份證號資訊
ffmt.P(idvalidator.GetInfo("440308199901101512"))
// []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 +0000 UTC> // 出生日期
// 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> // 錯誤資訊
// ]
}
原始碼連結
相關專案
- jxlwqq/id-validator,jxlwqq
- jxlwqq/id-validator.py,jxlwqq
- mc-zone/IDValidator,mc-zone
- renyijiu/id_validator,renyijiu
參考資料
本作品採用《CC 協議》,轉載必須註明作者和本文連結
No practice, no gain in one's wit.
我的 Gitub