The project is in a healthy, maintained state
快速驗證台灣身分證、居留證、統一編號 / Validates Taiwan National ID (Citizen), Alien Resident Certificate (ARC, both old and new formats), and Unified Business Number (UBN).
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

~> 3.0
 Project Readme

Taiwan ID Validator (twid)

Go Test Go Reference License: MIT

twid is a lightweight and zero-dependency Go package for validating Taiwan National IDs, Alien Resident Certificates (ARC), and Unified Business Numbers (UBN).

It supports:

  • Taiwan National ID (中華民國身分證字號)
  • New Alien Resident Certificate (新式外來人口統一證號) (Since 2021)
  • Old Alien Resident Certificate (舊式外來人口統一證號)
  • Unified Business Number (UBN): Validates company tax IDs, fully supporting the latest logic (including the 7th-digit rule). (新舊格式的統一編號)

Installation

go get github.com/guanting112/taiwan-id-validator

Usage

package main

import (
	"fmt"

	twid "github.com/guanting112/taiwan-id-validator"
)

func main() {
	// National ID
	fmt.Println(twid.Validate("A123456789"))         // true
	fmt.Println(twid.ValidateNationId("A123456789")) // true
	fmt.Println(twid.ValidateNationId("A123456700")) // false

	// Taiwan Company UBN
	fmt.Println(twid.ValidateUbn("84149961")) // true
	fmt.Println(twid.ValidateUbn("22099131")) // true
	fmt.Println(twid.ValidateUbn("!@)(#&6y01)")) // false
	fmt.Println(twid.ValidateUbn("25317520")) // false
	fmt.Println(twid.ValidateUbn("00000000")) // false

	// New ARC
	fmt.Println(twid.Validate("A800000014"))      // true
	fmt.Println(twid.ValidateArcId("A800000014")) // true
	fmt.Println(twid.ValidateArcId("A800000015")) // false

	// Old ARC
	fmt.Println(twid.Validate("AC01234567"))      // true
	fmt.Println(twid.ValidateArcId("AC01234567")) // true

	// Invalid
	fmt.Println(twid.Validate("A123456788")) // false
}