UNPKG

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
/** * 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 };