- 中華民國身分證字號驗證驗證
- 新/舊版臺灣地區無戶籍國民、外國人、大陸地區人民及香港或澳門居民之專屬代號驗證
- 營利事業統一編號驗證 (支援新/舊版統一編號檢查)
- 自然人憑證編號驗證
- 電子發票手機條碼驗證
- 電子發票捐贈碼驗證
- taiwan-id-validator
- Features
- Table of Contents
- Quick start
- API
- Migration from v1
- Additional Information
Include taiwan-id-validator
in a script tag.
Usage:
<head>
<title>Taiwan ID Validator</title>
<meta charset="utf-8" />
<script src="https://unpkg.com/taiwan-id-validator"></script>
<script>
const input = 'A123456789'
if (taiwanIdValidator.isIdCardNumber(input)) { // 身分證字號、新/舊式統號
console.log(input + ' is a valid Taiwan ID Card Number.')
} else {
console.log(input + ' is not a valid Taiwan ID Card Number.')
}
</script>
</head>
Install with npm:
npm install taiwan-id-validator
Usage:
import { isIdCardNumber } from 'taiwan-id-validator'
const input = 'A123456789'
if (isIdCardNumber(input)) { // 身分證字號、新/舊式統號
console.log(input + ' is a valid Taiwan ID Card Number.')
} else {
console.log(input + ' is not a valid Taiwan ID Card Number.')
}
Name | Type | Description |
---|---|---|
input | string | The identification number to verify. This includes National Identification Numbers (身分證字號), and Unified Identification Numbers (外來人口統一證號). |
options (optional) |
IdCardValidationOptions | Options specifying which types of identification numbers to check Default: { nationalId: true, uiNumber: true } |
Example
isIdCardNumber('A123456789'); // true
isIdCardNumber('A123456789', { nationalId: false }); // false
isIdCardNumber('A800000014', {
nationalId: false,
uiNumber: {
oldFormat: false,
newFormat: {
foreignOrStateless: true,
statelessResident: false,
hkMacaoResident: false,
mainlandChinaResident: false
}
}
}) // true
Name | Type | Description |
---|---|---|
input | string | number | The Business Administration Number (營利事業統一編號) to verify |
options (optional) |
BanValidationOptions | Options specifying the validation rules for BAN Numbers Default: {} |
Example
isBan('12345675'); // true
isBan('12345675', { applyOldRules: true }); // true
isBan('12345678'); // false
Name | Type | Description |
---|---|---|
input | string | number | The E-Invoice Donate Code (電子發票捐贈碼) to verify |
Example
isDonateCode('123'); // true
isDonateCode('abc123'); // false
Name | Type | Description |
---|---|---|
input | string | The E-Invoice Mobile Barcode to verify |
Example
isMobileBarcode('/+.-++..'); // true
isMobileBarcode('/12345678'); // false
Name | Type | Description |
---|---|---|
input | string | The Citizen Digital Certificate Number to verify |
Example
isCdcNumber('AB12345678901234'); // true
isCdcNumber('A12345678901234'); // false
Name | Type | Description |
---|---|---|
nationalId (optional) |
boolean | Indicates whether to validate national identification numbers (身分證字號) Default: true |
uiNumber (optional) |
UiNumberValidationOptions | boolean | Indicates whether to validate UI number (統一證號). If a boolean value is provided instead of an object, all options within this object will inherit this boolean value. Default: true |
Name | Type | Description |
---|---|---|
oldFormat (optional) |
boolean | Indicates whether to validate old format UI numbers (舊式統一證號) Default: true |
newFormat (optional) |
NewUiValidationOptions | boolean | Indicates whether to validate new format UI numbers (新式統一證號). If a boolean value is provided instead of an object, all options within this object will inherit this boolean value. Default: true |
Name | Type | Description |
---|---|---|
foreignOrStateless (optional) |
boolean | Indicates whether to validate foreigners or stateless persons (外國人或無國籍人士) Default: true |
statelessResident (optional) |
boolean | Indicates whether to validate stateless residents (無戶籍國民) Default: true |
hkMacaoResident (optional) |
boolean | Indicates whether to validate Hong Kong or Macao residents (香港澳門居民) Default: true |
mainlandChinaResident (optional) |
boolean | Indicates whether to validate Mainland China residents (大陸地區居民) Default: true |
Name | Type | Description |
---|---|---|
applyOldRules (optional) |
boolean | Indicates whether to validate the input using the old format rules. Default: false |
- 為了跟政府單位使用詞彙統一並避免與統一證號英文
UI number
產生混淆,將isGuiNumber
改為isBan
。 - 營利事業統一編號已於2023年4月更新檢查邏輯,
isBan
預設使用新版邏輯,若要使用舊版邏輯可使用applyOldRules
選項。可參考新式外來人口統一證號專案說明 - 因外來人口統一證號與國民身分證字號使用情境以及驗證程式邏輯雷同,將原本
isNationalIdentificationNumberValid
、isResidentCertificateNumberValid
、isNewResidentCertificateNumberValid
、isOriginalResidentCertificateNumberValid
四個函數合併為isIdCardNumber
,並增加參數控制驗證範圍。 isEInvoiceCellPhoneBarcode
、isCitizenDigitalCertificateNumber
、isEInvoiceDonateCode
也都修改成較精簡名稱以利程式開發及閱讀。
自96年1月2日起:
1.由內政部移民署針對港、澳、大陸地區人民及華僑於核發臺灣地區居留證時,配賦統一證號。
2.由內政部移民署針對一般之外僑於核發外僑居留證時,配賦統一證號。
3.未曾取得前述機關所發證件,而有申報所得稅需要之已入境外國人或在臺無戶籍本國人,一般外僑可由當事人或被委託人檢附護照,向當地移民署提出申請,港、澳、大陸地區人民及華僑則檢附臺灣地區入出境許可證件,向移民署及其所屬臺中、高雄及花蓮服務處提出申請發給「中華民國統一證號基資表」。
內政部移民署自110年1月2日起,辦理現行外來人口統一證號(以下簡稱舊式統號)全面換發為新式統一證號(以下簡稱新式統號),有關統一證號之編排方式如下:
舊式統號:「統一證號」計有10個欄位,第1碼為區域碼,第2碼依據性別及核發機關分別為AB,CD,第3碼至第9碼為流水號,第10碼為檢查碼。
新式統號:「統一證號」計有10個欄位,第1碼為區域碼,第2碼為性別碼(8為男生,9為女生),第3碼為身分碼(數字0-6為外國人或無國籍人士、7為無戶籍國民、8為香港澳門居民、9為大陸地區人民),第4碼至第9碼為流水號,第10碼為檢查碼。
參考資料:
- 新式外來人口統一證號專案說明
- 新式外來人口統一證號懶人包
- 外僑的統一證號由何機關配賦及如何編排?
- Introduction to the Replacement Issuance of New UI No. for Foreign Nationals
一、營利事業統一編號(下稱統一編號)供營利事業及扣繳單位配號使用,預估空號將於113年用罄。
二、為擴增統一編號號碼並與現行配賦之統一編號相容(新舊統一編號格式相同),後續請公私部門配合修改統一編號檢核程式,主要係修正「檢查邏輯由可被『10』整除改為可被『5』整除」,相關說明詳如附件。
三、全國公私部門倘有使用統一編號檢核程式,請於112年3月31日前完成統一編號檢核程式修改作業,相關系統文件請併同檢視修正。
四、預計112年4月以後,將視舊號餘存狀況逐步釋出新產製之統一編號。
參考資料: