A Singapore NRIC Validator & Generator class, by Samuel Liew
This library supports the validation and generation of M-series NRIC numbers.
You can also use these pages on my website to generate or validate manually.
npm install singapore-nric
import NRIC from 'singapore-nric';
const n = new NRIC('S1234567D');
Property | Type | Description |
---|---|---|
value |
string | entire value of NRIC |
firstchar |
string | first character |
identifier |
string | last four alphanumeric characters |
checksum |
string | checksum (last character) |
isCorrectFormat |
boolean | format is valid |
isValid |
boolean | checksum is valid |
n.value; // 'S1234567D'
n.firstchar; // 'S'
n.identifier; // '567D'
n.checksum; // 'D'
n.isCorrectFormat; // true
n.isValid; // true
Validate a single NRIC, or an array of NRIC strings
@param {string|string[]|NRIC|NRIC[]} nric
- (single or array of) NRIC strings or NRIC instances
@returns {boolean}
- true if all are valid NRICs
NRIC.Validate('S1234567D'); // true
NRIC.Validate([ 'S1234567D', 'S1234567D' ]); // true
Returns a random NRIC with valid checksum
@param {string} firstchar
- (optional) set first character
@returns {NRIC}
- NRIC number
NRIC.Generate().value; // e.g.: 'S1234567D'
NRIC.Generate('M').value; // e.g.: 'M1235467X'
Generate an array of NRICs with valid checksum
@param {number} amount
- number to generate
@returns {NRIC[]}
- an array of NRIC numbers
const nrics = NRIC.GenerateMany(3); // e.g.: [ NRIC, NRIC, NRIC ]
nrics[0].value; // e.g.: 'S1234567D'
See tests.