@arturka_v_10

Как подставлять «-» через каждые 4 символа?

Мне нужно строку [a-zA-Z0-9], например ABCDEF2GA3BCABCD преобразовать в ABCD-EF2G-A3BC-ABCD.

Накошмарив регулярку, я смог получить лишь то, чтобы первые 4 отделялись дефисом, а дальше каждый символ отделялся.
Мне же нужно чтобы строка дробилась дефисом каждые 4 символа, с допуском по [a-zA-Z0-9].
  • Вопрос задан
  • 258 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
str.replace(/.{4}(?!$)/g, '$&-')

// или

str.match(/.{1,4}/g).join('-')

// или

str.split(/(?<=^(?:.{4})+)/).reduce((acc, n) => acc + (acc && '-') + n, '')

// или

''.concat(...[...str].map((n, i) => !i || i % 4 ? n : `-${n}`))

// или

Array.from(
  { length: Math.ceil(str.length / 4) },
  (n, i) => str.slice(i * 4, (i + 1) * 4)
).join`-`
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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