guanting112/php-taiwan-id-validator

Taiwan ID Validator (National ID, ARC, UBN) for PHP

Maintainers

Package info

github.com/guanting112/php-taiwan-id-validator

pkg:composer/guanting112/php-taiwan-id-validator

Statistics

Installs: 52

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 0

v1.0.0 2026-01-11 15:44 UTC

This package is auto-updated.

Last update: 2026-03-11 16:11:53 UTC


README

PHP Test License: MIT

A lightweight, zero-dependency PHP package for validating Taiwan National IDs, Alien Resident Certificates (ARC), and Unified Business Numbers (UBN).

Other Implementations

Features

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

Installation

Install via Composer:

composer require guanting112/php-taiwan-id-validator

Usage

use TaiwanIdValidator\TaiwanIdValidator;

// General Validation (National ID or ARC)
TaiwanIdValidator::validate('A123456789'); // true (National ID)
TaiwanIdValidator::validate('A800000014'); // true (New ARC)
TaiwanIdValidator::validate('AC01234567'); // true (Old ARC)

// Specific Validation
TaiwanIdValidator::validateNationId('A123456789'); // true
TaiwanIdValidator::validateArcId('A800000014'); // true
TaiwanIdValidator::validateUbn('12345678'); // false

// Taiwan Company UBN
TaiwanIdValidator::validateUbn("84149961") // true
TaiwanIdValidator::validateUbn("22099131") // true
TaiwanIdValidator::validateUbn("!@)(#&6y01)") // false
TaiwanIdValidator::validateUbn("25317520") // false
TaiwanIdValidator::validateUbn("00000000") // false

Examples

require 'vendor/autoload.php';

use TaiwanIdValidator\TaiwanIdValidator;

// National ID
var_dump(TaiwanIdValidator::validate('A123456789'));         // bool(true)
var_dump(TaiwanIdValidator::validateNationId('A123456789')); // bool(true)
var_dump(TaiwanIdValidator::validateNationId('A123456700')); // bool(false)

// Taiwan Company UBN
var_dump(TaiwanIdValidator::validateUbn('84149961')); // bool(true)
var_dump(TaiwanIdValidator::validateUbn('00000000')); // bool(false)

// New ARC
var_dump(TaiwanIdValidator::validate('A800000014'));      // bool(true)
var_dump(TaiwanIdValidator::validateArcId('A800000014')); // bool(true)

// Old ARC
var_dump(TaiwanIdValidator::validate('AC01234567'));      // bool(true)
var_dump(TaiwanIdValidator::validateArcId('AC01234567')); // bool(true)

Testing

Run unit tests with PHPUnit:

./vendor/bin/phpunit tests

License

MIT License