Problems › JavaScript › text
Hide most of an email address
A support screen shows enough of the address for an agent to recognise it, without putting the whole thing on screen.
- Keep the first character of the part before the @, replace the rest of that part with asterisks, and keep the domain as it is.
- A single-character local part has nothing to hide, so it comes back unchanged.
- Anything without an @, or with nothing before it, comes back untouched.
maskEmail(address: string) → string
Where you start
function maskEmail(address) {
}
Worked examples
| Call | Result |
|---|---|
maskEmail("ahmet@example.com") | "a****@example.com" |
maskEmail("a@b.com") | "a@b.com" |
maskEmail("noatsign") | "noatsign" |
maskEmail("@x.com") | "@x.com" |
Hint
Find the @ first. Everything follows from where it is.
Reference solution in JavaScript
function maskEmail(address) {
const at = address.indexOf('@');
if (at <= 0) return address;
return address[0] + '*'.repeat(at - 1) + address.slice(at);
}