mask
Masks a mobile number for PII-safe display.
Masking operates on the raw input string (not normalised). This is intentional — the masker is a pure display utility that works character-by-character on whatever string it receives. Callers who want to mask a normalised number should call format first: Mobile.mask(Mobile.format(value)).
Default behaviour: last 4 characters visible, remainder replaced by maskChar: "9876543210" → "XXXXXX3210".
Edge cases (all safe — never throws):
Empty input → returns
"".visibleStart + visibleEnd >= value.length→ entire string returned unmasked (overlap rule).Invalid or non-normalised input → masking applied character-by-character on the raw string (spaces,
+, hyphens count as characters). No normalisation is performed.
Examples with non-normalised input:
mask("+91 98765 43210")(15 chars, default params) →"XXXXXXXXXXX3210"mask("09876543210")(11 chars) →"XXXXXXX3210"
Return
Masked string. Never throws — display-safe by contract.
Parameters
Raw string to mask. No normalisation is applied.
Number of leading characters to show unmasked. Default: 0.
Number of trailing characters to show unmasked. Default: 4.
Character to replace masked positions. Default: 'X'.
Samples
check(Mobile.mask("9876543210") == "XXXXXX3210")