Skip to content
/ twid Public

A Go library for validating Taiwan identification numbers, including National IDs and various resident certificate formats.

Notifications You must be signed in to change notification settings

ddzero2c/twid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TWID - Taiwan ID Validator

A Go library for validating Taiwan identification numbers, including National IDs and various resident certificate formats.

This project is ported from taiwan-id-validator.

Features

  • Validates Taiwan National ID numbers
  • Validates old format resident certificates
  • Validates new format resident certificates (foreign/stateless, HK/Macao, mainland China)
  • Configurable validation options
  • Extracts detailed information (region, gender, ID type, etc.)
  • Case-insensitive validation

Installation

go get github.com/ddzero2c/twid

Usage

Basic Validation

package main

import (
    "fmt"
    "github.com/ddzero2c/twid"
)

func main() {
    // Simple validation
    if twid.IsValid("A123456789") {
        fmt.Println("Valid Taiwan ID")
    }
}

Detailed Parsing

validator := twid.NewValidator(twid.DefaultValidationOptions())
info, err := validator.Parse("A123456789")
if err != nil {
    fmt.Printf("Error: %v\n", err)
    return
}

fmt.Printf("Region: %s\n", info.Region)
fmt.Printf("Gender: %s\n", info.Gender)
fmt.Printf("Type: %s\n", info.Type)
fmt.Printf("Is Foreigner: %t\n", info.IsForeigner)
fmt.Printf("Serial Number: %s\n", info.SerialNo)
fmt.Printf("Checksum: %d\n", info.Checksum)
fmt.Printf("Is Valid: %t\n", info.IsValid)

Custom Validation Options

options := twid.ValidationOptions{
    NationalID: true,
    OldResidentCertificate: false,
    // Other options set to false
}
validator := twid.NewValidator(options)

Supported ID Types

  • National ID: Taiwan citizen identification numbers (e.g., A123456789)
  • Old Resident Certificate: Legacy format for foreign residents (e.g., AA00000009)
  • New Foreign/Stateless: New format for foreign or stateless residents (e.g., A800000014)
  • New Stateless Resident: New format for stateless residents (e.g., A870000015)
  • New HK/Macao Resident: New format for Hong Kong/Macao residents (e.g., A880000018)
  • New Mainland China Resident: New format for mainland China residents (e.g., A890000011)

Testing

go test

License

This project maintains the same license as the original taiwan-id-validator project.

Credits

Ported from the JavaScript library taiwan-id-validator by enylin.

About

A Go library for validating Taiwan identification numbers, including National IDs and various resident certificate formats.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Languages