重新格式化 Javascript 中的字符串

Reformat Strings in Javascript

如何重新格式化此字符串

0 - 32 1994--245

032-199-42-45

我试过了,但我的输出是错误的

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

我的输出是

 032-199-424-5

正则表达式

(\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})/, '---'))

演示:

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

您可以删除所有非数字并按三位或两位数字分组。

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

console.log(result);