0

我怎样才能重新格式化这个字符串

0 - 32 1994--245

032-199-42-45

我试过这个,但我的输出是错误的

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

我的输出是

 032-199-424-5
4

2 回答 2

0

正则表达式

(\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

于 2020-03-24T09:09:57.503 回答
0

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

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

console.log(result);

于 2020-03-24T09:09:59.243 回答