Back to js-datatype-intermediate
01-aadhaar-masker.js
JavaScript
1/**
2 * 🪪 Aadhaar Number Masker
3 *
4 * Sharma uncle ka beta naya app bana raha hai jisme Aadhaar number dikhana hai,
5 * lekin privacy maintain karni hai. Toh last 4 digits dikhao, baaki sab mask
6 * karo "X" se. Format mein dashes bhi hone chahiye: XXXX-XXXX-1234
7 *
8 * Rules:
9 * - Input ek string honi chahiye exactly 12 digits ki (no spaces, no dashes)
10 * - Pehle 8 digits ko "X" se replace karo
11 * - Last 4 digits as-is rakho
12 * - Output format: "XXXX-XXXX-1234" (dashes after every 4 characters)
13 * - Hint: Use string methods like slice(), repeat(), and length
14 *
15 * Validation:
16 * - Agar input string nahi hai, return "INVALID"
17 * - Agar string ki length exactly 12 nahi hai, return "INVALID"
18 * - Agar string mein koi non-digit character hai, return "INVALID"
19 *
20 * @param {string} aadhaarNumber - 12-digit Aadhaar number as string
21 * @returns {string} Masked Aadhaar in format "XXXX-XXXX-1234" or "INVALID"
22 *
23 * @example
24 * maskAadhaar("123456781234")
25 * // => "XXXX-XXXX-1234"
26 *
27 * maskAadhaar("9876")
28 * // => "INVALID"
29 */
30export function maskAadhaar(aadhaarNumber) {
31 if(typeof aadhaarNumber !== "string"||aadhaarNumber.length !== 12 || !(/^\d+$/.test(aadhaarNumber))){
32 return "INVALID"
33 }
34
35 let lastFourDigit = aadhaarNumber.slice(aadhaarNumber.length - 4)
36 let masked = "X".repeat(8)
37 let first = masked.slice(0,4)
38 let second = masked.slice(4)
39
40 return `${first}-${second}-${lastFourDigit}`
41}
42