Задать вопрос
@dmitry-toster

Как отображать первые 3 символа в строке, а остальные заменять?

Есть строка, например: Mozilla
В ней надо оставить первые 3 символа, остальные заменить на -, т.е должно получиться Moz----
Я это решил так:
const str = 'Mozilla';

const newStr = str.split('').reduce((s, letter, i) => {
  if (i < 3) {
    s += letter;
  } else {
    s += '-';
  }

  return s;
}, '');

console.log(newStr) // Moz----

Но что-то мне не нравится такой способ, как можно написать лаконичнее?
  • Вопрос задан
  • 236 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
str.slice(0, 3) + '-'.repeat(Math.max(0, str.length - 3))

// или

str.replace(/(?<=.{3})./g, '-')

// или

Array.from(str, (n, i) => i < 3 ? n : '-').join('')

// или

str.replace(/./g, (m, i) => i < 3 ? m : '-')

// или

str.match(/.{0,3}/) + Array(Math.max(0, str.length - 2)).join`-`

// или

str.substring(0, 3).padEnd(str.length, '-')
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы