validate-indian-data
Version:
A simple utility to validate Indian phone numbers, PAN, Aadhar, PIN codes, and vehicle numbers.
71 lines (65 loc) • 1.59 kB
JavaScript
/**
* Validates an Indian mobile number.
* Rules:
* - Must be 10 digits
* - Must start with 6, 7, 8, or 9
*/
function isValidIndianPhone(phone) {
return typeof phone === "string" && /^[6-9]\d{9}$/.test(phone);
}
/**
* Validates an Aadhar number.
* Rules:
* - Exactly 12 digits
* - Cannot start with 0 or 1 (as per UIDAI spec)
*/
function isValidAadhar(aadhar) {
return typeof aadhar === "string" && /^[2-9]\d{11}$/.test(aadhar);
}
/**
* Validates a PAN card number.
* Format:
* - 5 uppercase letters, 4 digits, 1 uppercase letter (e.g., ABCDE1234F)
* - The fourth letter must be one of: [P, C, H, A, B, G, J, L, F, T] (entity types)
*/
function isValidPAN(pan) {
return (
typeof pan === "string" &&
/^[A-Z]{5}[0-9]{4}[A-Z]$/.test(pan) &&
/[PCHABGJLFT]/.test(pan[3])
);
}
/**
* Validates an Indian PIN code.
* Rules:
* - 6 digits
* - First digit can't be 0
*/
function isValidPIN(pincode) {
return typeof pincode === "string" && /^[1-9][0-9]{5}$/.test(pincode);
}
/**
* Validates an Indian vehicle number.
* Format:
* - 2 uppercase letters (state)
* - 2 digits (district)
* - 1–2 uppercase letters (series)
* - 4 digits (number)
* Examples:
* - MH12AB1234
* - DL01C1234
*/
function isValidVehicleNumber(vehicle) {
return (
typeof vehicle === "string" &&
/^[A-Z]{2}[0-9]{2}[A-Z]{1,2}[0-9]{4}$/.test(vehicle)
);
}
// Exporting all functions
module.exports = {
isValidIndianPhone,
isValidAadhar,
isValidPAN,
isValidPIN,
isValidVehicleNumber
};