Skip to content

mrcentimetre/sl-nic-parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sl-nic-parser

A lightweight, zero-dependency TypeScript package to parse Sri Lankan National Identity Card (NIC) numbers and extract date of birth, gender, and age.

Supports both the old format (pre-2016) and the new format (2016+).

Install

npm install sl-nic-parser

Usage

import { parseNIC, validateNIC } from "sl-nic-parser";

// Parse a NIC number
const result = parseNIC("952632567V");
console.log(result);
// {
//   birthDate: Date(1995-09-20),
//   gender: "male",
//   age: 30,
//   nicType: "old"
// }

// Validate a NIC number
validateNIC("952632567V");   // true
validateNIC("199526300123"); // true
validateNIC("invalid");      // false

Works with CommonJS too:

const { parseNIC, validateNIC } = require("sl-nic-parser");

API

parseNIC(nic: string): NICResult

Parses a Sri Lankan NIC number and returns structured data.

Field Type Description
birthDate Date Date of birth
gender "male" | "female" Gender derived from day-of-year
age number Current age in years
nicType "old" | "new" Format type — old (10-char) or new (12-digit)

Throws Error("Invalid NIC number") if the input is not a valid NIC.

validateNIC(nic: string): boolean

Returns true if the string is a valid Sri Lankan NIC format, false otherwise.

NIC Format Reference

Format Length Pattern Example
Old (pre-2016) 10 chars YYDDDDSSSV 952632567V
New (2016+) 12 digits YYYYDDDDSSSC 199526300123
  • YY / YYYY — birth year (2-digit for old, 4-digit for new)
  • DDD / DDDD — day of year (3 digits old, 4 digits new). For females, 500 is added.
  • SSS / SSSC — serial number (and check digit for new format)
  • V / X — check letter for old format (V or X)

License

MIT

About

Parse Sri Lankan NIC numbers to extract date of birth, gender, and age. Supports both old (9-digit) and new (12-digit) formats

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors