@badman4235

Как избавиться от повторяющихся цифр в строке?

Есть строка. Надо избавиться от повторяющихся цифр, расположенных подряд. Например:

"abcd111" -> "abcd1"
"aaaa22122bbbb" -> "aaaa212bbbb"
"a8n64m33xxx000x0" -> "a8n64m3xxx0x0"
  • Вопрос задан
  • 253 просмотра
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
str.replace(/(\d)\1+/g, '$1')

// или

''.concat(...str.split(/(\d)\1+/))

// или

Array.from(str).filter((n, i, a) => Number.isNaN(+n) || a[i - 1] !== n).join('')

// или

[...str.matchAll(/(\D+)|(?:(\d)\2*)/g)].reduce((acc, n) => acc + (n[1] ?? n[2]), '')
Ответ написан
sergiks
@sergiks Куратор тега JavaScript
♬♬
let out = "";
for (let i = 0, prev = ""; i < str.length; i++) {
  const c = str.charAt(i);
  if (c === prev  &&  c >= "0"  &&  c <= "9") continue;
  out += (prev = c);
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы