Thursday, November 13, 2025

Pick a property name already!

     const getLast4 = (c: any): string | undefined =>

        {
            if (c?.lastFourDigitsAccountNum && /^\d{4}$/.test(String(c.lastFourDigitsAccountNum)))
            {
                return String(c.lastFourDigitsAccountNum);
            }
            let v =
                c?.lastFourDigits ??
                c?.lastFour ??
                c?.last4 ??
                c?.cardLast4 ??
                c?.accountLast4 ??
                c?.last_digits ??
                c?.lastDigits ??
                undefined;

            if (!v || String(v).trim() === "")
            {
                const cand = [
                    c?.cardNumber,
                    c?.pan,
                    c?.maskedPan,
                    c?.maskedCard,
                    c?.accountNumber,
                    c?.maskedAccount,
                ].filter(Boolean);

                for (const s of cand)
                {
                    const m = String(s).match(/(\d{4})\D*$/);
                    if (m) { v = m[1]; break; }
                }
            }
            return v && /^\d{4}$/.test(String(v)) ? String(v) : undefined;
        };