Переформатировать строки в Javascript

Как я могу переформатировать эту строку

0 - 32 1994--245

To

032-199-42-45

Я пробовал это, но мой вывод неверен

['0 - 32 1994--245'].replace(/[- ]/g, '')
.match(/(\d{1,3})/g)
.join('-')

мой вывод

 032-199-424-5

person aJaysanity    schedule 24.03.2020    source источник
comment
Всегда ли количество цифр в строке одинаково? Может ли быть вход 0 - 32 1994--245 -456? Если да, каков ожидаемый результат?   -  person Wiktor Stribiżew    schedule 24.03.2020
comment
Я предполагаю, что ответ выше - да.   -  person Wiktor Stribiżew    schedule 24.03.2020


Ответы (2)


Вы можете удалить все нецифры и сгруппировать по трем или двум цифрам.

var string = '0 - 32 1994--245',
    result = string
        .replace(/\D+/g, '')
        .match(/.{2,3}(?=..)|.+/g)
        .join('-');

console.log(result);

person Nina Scholz    schedule 24.03.2020

Регулярное выражение

(\d{3})(\d{3})(\d{2})(\d{2})

var str = '0 - 32 1994--245'.replace(/[- ]/g, '')

console.log(str.replace(/(\d{3})(\d{3})(\d{2})(\d{2})/, '$1-$2-$3-$4'))

Демонстрация:

https://regex101.com/r/xnCL8K/1

person User863    schedule 24.03.2020