satyacode
Background
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