National ID
Validate Iranian national ID (کد ملی) numbers: normalizes Persian/Arabic-Indic digits, zero-pads shorter input, rejects all-zero and repeated-digit values, verifies the standard weighted-sum checksum, and by default cross-checks the 3-digit issuance-office prefix against known codes.
Last updated January 1, 1980
Overview
Installation
Usage
import { isValidNationalId } from "@/lib/national-id"
isValidNationalId("0499370899") // true
isValidNationalId("0499370898") // false — bad checksum
isValidNationalId("499370899") // true — zero-padded to "0499370899"
isValidNationalId("0999370899") // false — unknown issuance prefix
isValidNationalId("0999370899", { checkPrefix: false }) // checksum only