Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как скрыть часть строки

Короткий ответ

Возьмите последние четыре символа и заполните остальную длину звёздочками:

const card = '4111111111111111';
const masked = card.slice(-4).padStart(card.length, '*');
 
console.log(masked);

Результат:

************1111

Почта

Оставьте первую букву имени и домен, а остальное скройте:

const email = 'anna.smith@example.com';
const [name, domain] = email.split('@');
const masked = name[0] + '*'.repeat(name.length - 1) + '@' + domain;
 
console.log(masked);

Результат:

a*********@example.com

Частая ошибка

Если строка короче видимой части, repeat() получит отрицательное число и выбросит ошибку. Защититесь от коротких строк:

const mask = (text, visible = 4) =>
  text.length <= visible ? text : '*'.repeat(text.length - visible) + text.slice(-visible);
 
console.log(mask('123'));
console.log(mask('123456789'));

Результат:

123
*****6789

Функции из этого ответа

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.