@spoT1

Можно ли через регулярные выражения вставить в текст символ?

Пример:
let number = 381724914491
И с помощью регулярных выражений сделать так:
381-72-491-44-91
  • Вопрос задан
  • 198 просмотров
Пригласить эксперта
Ответы на вопрос 2
0xD34F
@0xD34F Куратор тега JavaScript
Регулярные выражения не нужны:

const insert = (str, indices, ch = '-') => [...indices]
  .sort((a, b) => b - a)
  .reduce((acc, n) => (acc.splice(n, 0, ch), acc), [...str])
  .join('');
// или
const insert = (str, indices, ch = '-') => []
  .concat(0, indices)
  .sort((a, b) => a - b)
  .map((n, i, a) => str.slice(n, a[i + 1]))
  .join(ch);


const str = insert(`${number}`, [ 3, 5, 8, 10 ]);

Но, конечно, можно и с ними:

const insert = (str, indices, ch = '-') => indices
  .slice()
  .sort((a, b) => b - a)
  .reduce((acc, n) => acc.replace(RegExp(`(?<=.{${n}})`), ch), str);
Ответ написан
Комментировать
RAFAILgaley
@RAFAILgaley
используй метод строки slice()
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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